44์ฅ REST API
REST๋ HTTP๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ๋ฆฌ์์ค์ ์ ๊ทผํ๋ ๋ฐฉ์์ ๊ท์ ํ ์ํคํ ์ฒ.
REST API๋ REST๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋น์ค API๋ฅผ ๊ตฌํํ ๊ฒ์ ์๋ฏธํจ.
REST๋ ์ 2000๋ ๋ ผ๋ฌธ์์ ์ฒ์ ์๊ฐ๋์๋ค. ๋ฐํ ๋น์์ ์น์ด HTTP๋ฅผ ์ ๋๋ก ์ฌ์ฉํ์ง ๋ชปํ๋ ์ํฉ์ ๋ณด๊ณ HTTP ์ฅ์ ์ ์ต๋ํ ์ฌ์ฉํ ์ ์๋ ์ํคํ ์ฒ๋ก์ REST๋ฅผ ์๊ฐํ๊ณ ์ด๋ HTTP ํ๋กํ ์ฝ์ ์๋์ ๋ง๊ฒ ๋์์ธํ๋๋ก ์ ๋ํ์๋ค. REST์ ๊ธฐ๋ณธ ์์น์ ์ฑ์คํ ์งํจ ์๋น์ค ๋์์ธ์ RESTful์ด๋ผ ํํํ๋ค.
44.1 REST API์ ๊ตฌ์ฑ
REST API๋ ์์, ํ์, ํํ์ 3๊ฐ์ง ์์๋ก ๊ตฌ์ฑ๋๋ค. REST๋ ์์ฒด ํํ ๊ตฌ์กฐ๋ก ๊ตฌ์ฑ๋์ด REST API ๋ง์ผ๋ก HTTP ์์ฒญ์ ์ดํดํ ์ ์๋ค.
์์ Resource - URI
ํ์ Verb - HTTP ์์ฒญ ๋ฉ์๋
ํํ Representations - ํ์ด๋ก๋
44.2 REST API ์ค๊ณ ์์น
REST์์ ๊ฐ์ฅ ์ค์ํ ๊ธฐ๋ณธ์ ์ธ ์์น์ 2๊ฐ์ง๋ค.
URI๋ ๋ฆฌ์์ค๋ฅผ ํํํด์ผ ํ๋ค.
URI๋ ๋ฆฌ์์ค๋ฅผ ํํํ๋๋ฐ ์ค์ ์ ๋์ด์ผ ํ๋ค. ๋ฆฌ์์ค๋ฅผ ์๋ณํ ์ ์๋ ์ด๋ฆ์ ๋์ฌ๋ณด๋ค ๋ช ์ฌ๋ฅผ ์ฌ์ฉํ๋ค. ๋ฐ๋ผ์ ์ด๋ฆ์ get๊ณผ ๊ฐ์ ํ์์ ํํ์ด ๋ค์ด๊ฐ์๋ ์๋๋ค.
๋ฆฌ์์ค์ ๋ํ ํ์๋ HTTP ์์ฒญ ๋ฉ์๋๋ก ํํํ๋ค.
HTTP ์์ฒญ ๋ฉ์๋๋ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ ์์ฒญ์ ์ข ๋ฅ์ ๋ชฉ์ ์ ์๋ฆฌ๋ ๋ฐฉ๋ฒ์ด๋ค. ์ฃผ๋ก 5๊ฐ์ง ์์ฒญ ๋ฉ์๋๋ฅผ ์ฌ์ฉํ์ฌ CRUD๋ฅผ ๊ตฌํํ๋ค.
GET
index/retrieve
๋ชจ๋ /ํน์ ๋ฆฌ์์ค ์ทจ๋
X
POST
create
๋ฆฌ์์ค ์์ฑ
O
PUT
replace
๋ฆฌ์์ค์ ์ ์ฒด ๊ต์ฒด
O
PATCH
modify
๋ฆฌ์์ค์ ์ผ๋ถ ์์
O
DELETE
delete
๋ชจ๋ /ํน์ ๋ฆฌ์์ค ์ญ์
X
43.3 JSON Server๋ฅผ ์ด์ฉํ REST API ์ค์ต
43.3.1 JSON Server ์ค์น
P.832
43.3.2 db.json ํ์ผ ์์ฑ
P.832 - P.833
43.3.3 JSON Server ์คํ
P.833 - P.834
43.3.4 GET ์์ฒญ
P.834 - P.836
43.3.5 POST ์์ฒญ
P.837 - P.838
43.3.6 PUT ์์ฒญ
P.838 - P.839
43.3.7 PATCH ์์ฒญ
P.839 - P.840
43.3.8 DELETE ์์ฒญ
P.840 - P.841
Last updated
Was this helpful?