Runkit이 필요 없는 단순한 서버의 웹 API
6547 단어 Node.jsJavaScript
Runkit
Runkitnpm의 Node를 사용할 수 있습니다.저는 js를 위한 Playground입니다.각각의 코드북을 노트북이라고 부르며 npm에서 모듈을 가져오거나 다른 노트북을 가져올 수 있다.
이번에는 Runkit의 기능 중 하나인 Endpoint, AWS Lambda 기능처럼 웹 API로 공개할 수 있는 기능을 소개한다.
사용법
가장 쉬운 사용법은exports.endpoint = (req, resp) => {
resp.end("Hello!");
}
이런 느낌으로 exports.endpoint
요청과 응답을 받아들이는 처리 프로그램을 정의합니다.
publish 옆에 있는 endpoint 링크에서 Notebook에 할당된 Endpoint의 URL을 알 수 있습니다.
위 샘플의 Endipoint URL이 https://untitled-pnq6ao8zpp2j.runkit.sh에 할당되어 있기 때문에 거기로 가 보세요httpie $ http https://untitled-pnq6ao8zpp2j.runkit.sh/
HTTP/1.1 200 OK
connection: close
content-length: 6
date: Sat, 07 Apr 2018 04:31:54 GMT
runkit-rate-limit-remaining: 9989
strict-transport-security: max-age=31536000
x-powered-by: runkit.com
hello!
응답에 정의된 문자열을 되돌려줍니다.
Runkit 지원 사용
위의 간단한 방법은 실제로 사용하기에 매우 불편하다.왜냐하면export.endpoint
내부에서 아래와 같은http.Server
의request
활동 리셋이 교부되어 리셋 요청http.IncomingMessage의 흐름으로 요청·신체의 엄숙한 처리 등이 번거롭기 때문이다.server.on("request", (req, resp) => {
resp.end("hello!");
});
따라서 Runkit이 준비한Endpoint용 Assistant Notebook을 미리 가져와서 좀 더 편리하게 하세요.const endpoint = require("@runkit/runkit/json-endpoint/1.0.0");
endpoint(exports, incomingData => {
return incomingData.body;
})
이렇게 하면 incomingData
로 엄숙해진 요청의 데이터를 받을 수 있다.
위에서 매개 변수로 받은 물건에 대한 메아리의 예일 뿐입니다.httpie로 다시 한 번 두드리면 $ http https://untitled-pnq6ao8zpp2j.runkit.sh name=justine
HTTP/1.1 200 OK
access-control-allow-origin: *
access-control-expose-headers: tonic-rate-limit-remaining
connection: close
content-length: 23
content-type: application/json; charset=utf-8
date: Sat, 07 Apr 2018 06:22:05 GMT
etag: W/"17-C5+qw1XJcXNTe59jonBwYQ"
runkit-rate-limit-remaining: 9956
strict-transport-security: max-age=31536000
vary: Accept-Encoding
x-powered-by: runkit.com
{
"name": "justine"
}
당신의 요구와 몸을 이미 받았다는 것을 알고 있습니다.
Express와 함께 사용
const express = require("@runkit/runkit/express-endpoint/1.0.0");
const app = express(exports);
app.get("/:name", (req, res) => res.send(`hey ${req.params.name}`))
Express에 exports
를 전달하면 Express를 사용하여 Enpoint를 구현할 수도 있습니다.
제한
Runkit은 편리하지만 다음과 같은 제한이 있습니다.
가장 쉬운 사용법은
exports.endpoint = (req, resp) => {
resp.end("Hello!");
}
이런 느낌으로 exports.endpoint
요청과 응답을 받아들이는 처리 프로그램을 정의합니다.publish 옆에 있는 endpoint 링크에서 Notebook에 할당된 Endpoint의 URL을 알 수 있습니다.
위 샘플의 Endipoint URL이 https://untitled-pnq6ao8zpp2j.runkit.sh에 할당되어 있기 때문에 거기로 가 보세요httpie
$ http https://untitled-pnq6ao8zpp2j.runkit.sh/
HTTP/1.1 200 OK
connection: close
content-length: 6
date: Sat, 07 Apr 2018 04:31:54 GMT
runkit-rate-limit-remaining: 9989
strict-transport-security: max-age=31536000
x-powered-by: runkit.com
hello!
응답에 정의된 문자열을 되돌려줍니다.Runkit 지원 사용
위의 간단한 방법은 실제로 사용하기에 매우 불편하다.왜냐하면
export.endpoint
내부에서 아래와 같은http.Server
의request
활동 리셋이 교부되어 리셋 요청http.IncomingMessage의 흐름으로 요청·신체의 엄숙한 처리 등이 번거롭기 때문이다.server.on("request", (req, resp) => {
resp.end("hello!");
});
따라서 Runkit이 준비한Endpoint용 Assistant Notebook을 미리 가져와서 좀 더 편리하게 하세요.const endpoint = require("@runkit/runkit/json-endpoint/1.0.0");
endpoint(exports, incomingData => {
return incomingData.body;
})
이렇게 하면 incomingData
로 엄숙해진 요청의 데이터를 받을 수 있다.위에서 매개 변수로 받은 물건에 대한 메아리의 예일 뿐입니다.httpie로 다시 한 번 두드리면
$ http https://untitled-pnq6ao8zpp2j.runkit.sh name=justine
HTTP/1.1 200 OK
access-control-allow-origin: *
access-control-expose-headers: tonic-rate-limit-remaining
connection: close
content-length: 23
content-type: application/json; charset=utf-8
date: Sat, 07 Apr 2018 06:22:05 GMT
etag: W/"17-C5+qw1XJcXNTe59jonBwYQ"
runkit-rate-limit-remaining: 9956
strict-transport-security: max-age=31536000
vary: Accept-Encoding
x-powered-by: runkit.com
{
"name": "justine"
}
당신의 요구와 몸을 이미 받았다는 것을 알고 있습니다.Express와 함께 사용
const express = require("@runkit/runkit/express-endpoint/1.0.0");
const app = express(exports);
app.get("/:name", (req, res) => res.send(`hey ${req.params.name}`))
Express에 exports
를 전달하면 Express를 사용하여 Enpoint를 구현할 수도 있습니다.제한
Runkit은 편리하지만 다음과 같은 제한이 있습니다.
runkit-rate-limit-remaining
의 헤더 수가 0이면 끝날 수 있습니다.따라서 시점 또는 일 단위로 리셋하기 전까지 9천999회 팟캐스트를 할 수 있다.참조: Runkit Endpoint
Reference
이 문제에 관하여(Runkit이 필요 없는 단순한 서버의 웹 API), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/IzumiSy/items/35da6a48b2b00d0ab95a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)