REST
REST API ๋งตํ์๋ subscribe๋ฅผ ์ ์ธํ call, publish, map ์ปค๋ฅํฐ๋ฅผ ์ด์ฉ ํ ์ ์์ต๋๋ค.
basePath๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ดํ REST ์๋ํฌ์ธํธ๊ฐ ์์ฑ๋ฉ๋๋ค.
description์ ๋ฌธ์ ์์ฑ์ ํ์ฉ๋๋ฉฐ Markdown์ ์ง์ํฉ๋๋ค (์ต์
).
Call
GET /players/1 ์์ฒญ์ด player.get ์ก์
์ { id: 1 } ํ์ด๋ก๋์ ํจ๊ป ํธ์ถํ๊ณ ์ฑ๊ณต์ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํฉ๋๋ค.
depreacted๋ ๋ฌธ์ ์์ฑ์ ํ์ฉ๋ฉ๋๋ค (์ต์
).
๋ผ์ฐํธ path๋ฅผ ๊ตฌ์ฑํ๋ ๊ท์น์ ๋ฅผ ์ฐธ๊ณ ํ ์ ์์ต๋๋ค.
GET /players/me ์์ฒญ์ด player.get ์ก์
์ { id: <์ธ์ฆ ์ปจํ
์คํธ์ player.id> } ์ ๋ณด๋ก๋ถํฐ ํ์ด๋ก๋์ ํจ๊ป ํธ์ถํ๊ณ ์ฑ๊ณต์ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํฉ๋๋ค.
Map
๋๋ map ์ปค๋ฅํฐ (Inline JavaScript Function String)๋ฅผ ํตํด ์ธ์ฆ ์ปจํ
์คํธ์ player ๊ฐ์ฒด๋ฅผ ๋ฐ๋ก ๋ฐํ ํ ์ ์์ต๋๋ค. ์ดํ์ ๋ค์ ๋ค๋ฃจ๋ Inline JavaScript Function String์ API Gateway์ Node.js VM ์๋๋ฐ์ค์์ ํด์๋ฉ๋๋ค.
Publish
POST /players/1 (body: { message: "blabla" }) ์์ฒญ์ player.message ์ด๋ฒคํธ๋ฅผ { userId: id: <์ธ์ฆ ์ปจํ
์คํธ์ player.id>, message: "blabla" } ํ์ด๋ก๋์ ํจ๊ป publishํ๊ณ ์ฑ๊ณต์ ๋ฐ์ก๋ ํ์ด๋ก๋๋ฅผ ์๋ตํฉ๋๋ค.
Params
REST API์ params ๋งตํ์๋ @path, @body, @query, @context ๊ฐ์ฒด๋ฅผ ์ด์ฉ ํ ์ ์์ต๋๋ค.