[TIL] Day32
[SEB FE] Day32
Representational State Transfer
์น์์ ์ฌ์ฉ๋๋ ๋ชจ๋ ๋ฐ์ดํฐ/์์(Resource)์ HTTP URI๋ก ํํํ๊ณ ,
HTTP ํ๋กํ ์ฝ์ ํตํด ์์ฒญ๊ณผ ์๋ต์ ์ ์ํ๋ ๋ฐฉ์
Level | Description | |
---|---|---|
0๋จ๊ณ | HTTP ํ๋กํ ์ฝ ์ฌ์ฉ | |
1๋จ๊ณ | ๊ฐ๋ณ ๋ฆฌ์์ค์์ ํต์ ์ค์ | |
2๋จ๊ณ | HTTP ๋ฉ์๋ ์์น ์ค์ | โ HTTP API |
3๋จ๊ณ | HATEOAS ์์น ์ค์ | โ REST API |
HTTP ํ๋กํ ์ฝ ์ฌ์ฉ โ REST API ์์ฑ ๊ธฐ๋ณธ ๋จ๊ณ
โย 0๋จ๊ณ์ ๊ฒฝ์ฐ, ํด๋น API๋ฅผREST API
๋ผ๊ณ ํ ์ โ
๊ฐ๋ณ Resource์์ ํต์ ์ค์
๐ ๋ชจ๋ ์์์ ๊ฐ๋ณ ๋ฆฌ์์ค์ ๋ง๋ ์๋ํฌ์ธํธ(Endpoint
) ์ฌ์ฉํด์ผ ํ๋ฉฐ, ์์ฒญํ๊ณ ๋ฐ๋ ์์ ์ ๋ณด๋ฅผ ์๋ต์ผ๋ก ์ ๋ฌํด์ผ ํจ
โ ๋ฆฌ์์ค ์ฌ์ฉ์ ๋ํ ์ฑ๊ณต/์คํจ ์ฌ๋ถ ํจ๊ป ๋ฐํ
โย Endpoint
์์ฑ์ ๋ฆฌ์์ค์ ์ด์ ์ ๋์ด ๋ช
์ฌ ํํ ๋จ์ด๋ก ์์ฑํ๋ ๊ฒ์ด ๋ฐ๋์ง
(๋์ฌ, ํ์ ๋จ์ด ์ฌ์ฉ ์ง์)
CRUD์ ๋ง๊ฒ ์ ์ ํ HTTP ๋ฉ์๋๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ์ค์
๐ซถ HTTP ๋ฉ์๋ ์ฌ์ฉ ๊ท์น ์ ์ ์ฌํญ
Method | Rule |
---|---|
GET | ์๋ฒ ๋ฐ์ดํฐ๋ฅผ ๋ณํ์ํค์ง ์๋ ์์ฒญ์ ์ฌ์ฉ |
POST | ์์ฒญ๋ง๋ค ์๋ก์ด ๋ฆฌ์์ค ์์ฑ (๋ฉฑ๋ฑ์ฑโ) |
PUT | ์์ฒญ๋ง๋ค ๊ฐ์ ๋ฆฌ์์ค ๋ฐํ (๋ฉฑ๋ฑ์ฑโญ๏ธ) ๊ต์ฒด ์ฉ๋๋ก ์ฌ์ฉ โย ๋งค ์์ฒญ๋ง๋ค ๊ฐ์ ๋ฆฌ์์ค๋ฅผ ๋ฐํํ๋ ํน์ง โ ๋ฉฑ๋ฑ(idempotent)ํ๋ค |
PATCH | ์์ ์ฉ๋๋ก ์ฌ์ฉ โย PUT๊ณผ ๋น์ทํ๋ ๊ตฌ๋ถํ์ฌ ์ฌ์ฉํด์ผ ํจ |
HATEOAS(Hypertext As Engine Of Application State) ํ์ดํผ๋ฏธ๋์ด ์ปจํธ๋กค ์ ์ฉ
โย ์์ฒญ์ 2๋จ๊ณ์ ๋์ผํ์ง๋ง, ์๋ต์ ๋ฆฌ์์ค URI๋ฅผ ํฌํจํ ๋งํฌ ์์ ์ฝ์ ํ์ฌ ์์ฑํด์ผ ํจ
๋๊ตฌ์๊ฒ๋ ์ด๋ ค์๋ API
โย But, ๋ฌด์ ํ์ผ๋ก ์ด์ฉ ๊ฐ๋ฅํ๋ค๋ ์๋ฏธ โย (์ ํด์ง ์ด์ฉ ์์น, ์ ํ์ฌํญ์ด ์กด์ฌํ ์๋ ์์)
์๋ฒ์ ๋ฌธ์ ์ฌ๋ Key๋ก์จ, API๋ฅผ ์ด์ฉํ๋ ค๋ฉด
API Key
ํ์
โฐย ๋ก๊ทธ์ธํ User์๊ฒ ์์์ ์ ๊ทผํ ์ ์๋ ๊ถํ์ API Key ํํ๋ก ์ ๊ณต
โฐย ๋ฐ์ดํฐ ์์ฒญ์ API Key๋ฅผ ๊ฐ์ด ์ ๋ฌํด์ผ ์ํ๋ ์๋ต์ ๋ฐ์ ์ ์์
โ๏ธ
์ค๋์ ๊ทธ๋๋ ์๊ฐ์ด ์ฌ์ ๋ก์ด ๋ ๐ซถ
์ ๋ ์ ์ฒจ๋ถํฐ ๋ณต์ต ์ข ํ๊ณ , ๊ฐ๋ฐ ๋์๋ ์ฝ๊ณ ์ ๋ฆฌํ๊ธฐ ๐ช