โ๏ธ ์ด๋ฒ ์ ๋ ์ ํตํด ์๊ฒ ๋ ๊ฒ
REST API๊ฐ ๋ฌด์์ธ๊ฐ์?
<๋ต ๋ฏธ๋ฆฌ๋ณด๊ธฐ>
๐ค REST API๊ฐ ๋ฌด์์ธ๊ฐ์?
๐ค REST๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋น์ค API๋ฅผ ๊ตฌํํ ๊ฒ์ ์๋ฏธํ๋๋ฐ, ์ฌ๊ธฐ์ REST๋ HTTP๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ๋ฆฌ์์ค์ ์ ๊ทผํ๋ ๋ฐฉ์์ ๊ท์ ํ ์ํคํ ์ณ๋ฅผ ์๋ฏธํฉ๋๋ค.
โ๏ธ REST์ ์๋ฏธ
(REpresentational State Transfer)
REST = HTTP๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์ ๋ฆฌ์์ค์ ์ ๊ทผํ๋ ๋ฐฉ์์ ๊ท์ ํ ์ํคํ ์ณ์ด๋ค.
RESTfull = REST์ ๊ธฐ๋ณธ ์์น์ ์ฑ์คํ ์งํจ ์๋น์ค ๋์์ธ์ 'RESTfull'์ด๋ผ๊ณ ํํํ๋ค.
REST API = REST๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋น์ค API๋ฅผ ๊ตฌํํ ๊ฒ์ ์๋ฏธํ๋ค.
โ๏ธ REST API์ ๊ตฌ์ฑ
์์ resource, ํ์ verb, ํํ representations
REST API๋ง์ผ๋ก HTTP ์์ฒญ ๋ด์ฉ์ ์ดํดํ ์ ์๋ค.
๊ตฌ์ฑ์์ | ๋ด์ฉ | ํํ๋ฐฉ๋ฒ |
์์ resource | ์์ | URI(์๋ํฌ์ธํธ) |
ํ์ verb | ์์์ ๋ํ ํ์ | HTTP ์์ฒญ ๋ฉ์๋ |
ํํ representations | ์์์ ๋ํ ํ์์ ๊ตฌ์ฒด์ ๋ด์ฉ | ํ์ด๋ก๋ |
โ๏ธ REST API ์ค๊ณ ์์น
1. URI๋ ๋ฆฌ์์ค๋ฅผ ํํํด์ผ ํ๋ค.
๋ฆฌ์์ค๋ฅผ ์๋ณํ ์ ์๋ ์ด๋ฆ์ ๋ช ์ฌ๋ฅผ ์ฌ์ฉํ์!
#bad
GET /getTodos/1
GET /todos/show/1
#good
GET /todos/1
2. ๋ฆฌ์์ค์ ๋ํ ํ์๋ HTTP ์์ฒญ ๋ฉ์๋๋ก ํํํ๋ค.
HTTP ์์ฒญ ๋ฉ์๋๋ ํด๋ผ์ด์ธํธ๊ฐ ์๋ฒ์๊ฒ ์์ฒญ์ ์ข ๋ฅ์ ๋ชฉ์ ์ ์๋ฆฌ๋ ๋ฐฉ๋ฒ์ด๋ค.
HTTP ์์ฒญ ๋ฉ์๋ | ๋ชฉ์ | ํ์ด๋ก๋ |
GET | ๋ชจ๋ /ํน์ ๋ฆฌ์์ค ์ทจ๋ | X |
POST | ๋ฆฌ์์ค ์์ฑ | O |
PUT | ๋ฆฌ์์ค์ ์ ์ฒด ๊ต์ฒด | O |
PATCH | ๋ฆฌ์์ค์ ์ผ๋ถ ์์ | O |
DELETE | ๋ชจ๋ /ํน์ ๋ฆฌ์์ค ์ญ์ | X |
๐ฉ๐ป ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ Deep Dive๋ฅผ ์ ๋ ํ๊ณ ์ ๊ฐ ์ดํดํ ๋ด์ฉ์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค ๐ฉ๐ป
'๐Language > JavaScript' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Deep Dive] ajax (0) | 2022.12.20 |
---|---|
[Deep Dive] ๋๊ธฐ์ ๋น๋๊ธฐ, ๋น๋๊ธฐ๊ฐ ์ฒ๋ฆฌ๋ ์ ์๋ ์ด์ (0) | 2022.12.19 |
[Deep Dive] DOM๊ณผ ๋ ธ๋ (0) | 2022.12.15 |
[Deep Dive] ๋ธ๋ผ์ฐ์ ์ ๋ ๋๋ง ๊ณผ์ (0) | 2022.12.14 |
[Deep Dive] ํด๋ก์ ์ ๋ ์์ปฌ์ค์ฝํ (0) | 2022.12.12 |