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.Serverrequest 활동 리셋이 교부되어 리셋 요청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은 편리하지만 다음과 같은 제한이 있습니다.
  • Endpoint에서 사용 가능한 모드는 HTTPS
  • 만 지원
  • Beta의 이유로 비상업용으로만 제공(상업용으로 필요한 경우 컨설팅 필요)
  • 요청 제한 시간은 60초
  • 로 고정
  • 엔드포인트에 속도 제한 있음
  • HTTP 응답에 포함된 runkit-rate-limit-remaining의 헤더 수가 0이면 끝날 수 있습니다.따라서 시점 또는 일 단위로 리셋하기 전까지 9천999회 팟캐스트를 할 수 있다.
  • 그렇게 말하지만 조금 놀거나 개인적으로 사용하기에는 전혀 개의치 않는다.
    참조: Runkit Endpoint

    좋은 웹페이지 즐겨찾기