๐ฐ RESTful API๋?
HTTP ํต์ ์์ ์ด๋ค ์์์ ๋ํ CRUD ์์ฒญ์ Resource์ Method๋ก ํํํ์ฌ ํน์ ํ ํํ๋ก ์ ๋ฌํ๋ ๋ฐฉ์
API ์์คํ
์ ๊ตฌํํ๊ธฐ ์ํ ์ํคํ
์ฒ ์ค์ ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ ํ์.
HTTP method, URI, Resource๋ก ์ด๋ฃจ์ด์ ธ ์๋ค.
- URL(Uniform Resource Identifier)
ํด๋น ์ฌ์ดํธ์ ํน์ ์์์ ์์น๋ฅผ ๋ํ๋ด๋ ์ ์ผํ ์ฃผ์ - HTTP Method
HTTP request๊ฐ ์๋ํ๋ action์ ์ ์ํ ๊ฒ - Payload
HTTP request์์ server๋ก ๋ณด๋ด๋ ๋ฐ์ดํฐ (body)
(์์ 3๊ฐ์ง๋ ์ดํด ์๊ฐ๋ฉด ๋ฐ๋ก ํ์ตํด๋ณผ๊ฒ!)
๐ฅ REpresentational State Transfer
์น์์์ ์ฌ์ฉ๋๋ ์ฌ๋ฌ ๋ฆฌ์์ค๋ฅผ HTTP URI๋ก ํํํ๊ณ ๊ทธ ๋ฆฌ์์ค์ ๋ํ ํ์๋ฅผ HTTP Method๋ก ์ ์ํ๋ ๋ฐฉ์. ์ฆ, ๋ฆฌ์์ค(HTTP URI๋ก ์ ์๋)๋ฅผ ์ด๋ป๊ฒ ํ๋ค(HTTP Method)๋ฅผ ๊ตฌ์กฐ์ ์ผ๋ก ๊น๋ํ๊ฒ ํํ
๐ฐ RESTful API์ ์ฅ์
๐ฅ Self-descriptiveness
RESTful API๋ ๊ทธ ์์ฒด๋ง์ผ๋ก๋ API์ ๋ชฉ์ ์ด ์ฝ๊ฒ ์ดํด๊ฐ ๋๋ค.
๐ฐ RESTful API ์ค๊ณ ๊ท์น
๐ฅ URI ์ ๋ณด๋ ๋ช ํํ๊ฒ ํํํด์ผ ํ๋ค.
- resource๋ ๋ช ์ฌ๋ฅผ ์ฌ์ฉํ๋ค.
๐ฅ resource์ ๋ํ ํ์๋ฅผ HTTP Method(GET, POST, PUT, DELETE)๋ก ํํํ๋ค.
- URI์ HTTP Method๊ฐ ํฌํจ๋์ด์๋ ์๋๋ค.
- URI์ ๋์ฌ๊ฐ ํฌํจ๋์๋ ์๋๋ค.
๐ฅ resource ์ฌ์ด์ ์ฐ๊ด ๊ด๊ณ๊ฐ ์๋ ๊ฒฝ์ฐ
- /๋ฆฌ์์ค/๊ณ ์ ID/๊ด๊ณ ์๋ ๋ฆฌ์์ค
๐ฅ URI๋ / ๊ตฌ๋ถ์๋ฅผ ์ฌ์ฉํ์ฌ ์์์ ๊ณ์ธต ๊ด๊ณ๋ฅผ ๋ํ๋ด๋๋ฐ ์ฌ์ฉํ๋ค.
๐ฅ URI ๋ง์ง๋ง ๋ฌธ์๋ก /๋ฅผ ํฌํจํ์ง ์๋๋ค.
๐ฅ ๋ถ๊ฐํผํ๊ฒ URI๊ฐ ๊ธธ์ด์ง๋ ๊ฒฝ์ฐ -์ ์ฌ์ฉํ์ฌ ๊ฐ๋ ์ฑ์ ๋์ธ๋ค.
๐ฅ _ ๋ ์ฌ์ฉํ์ง ์๋๋ค.
๐ฅ URI ๊ฒฝ๋ก์๋ ๋๋ฌธ์ ์ฌ์ฉ์ ํผํ๋๋ก ๊ท์ ํ๊ณ ์๋ค.
๐ฅ ํ์ผ์ ๊ฒฝ์ฐ payload์ ํฌ๋งท์ ๋ํ๋ด๊ธฐ ์ํ ํ์ผ ํ์ฅ์๋ฅผ URI์ ํฌํจ์ํค์ง ์๋๋ค.
๐ฐ Path parameters
ํ์ํ ์ํฉ์ ๋ฐ๋ผ, ๋ด๊ฐ ์ํ๋ ์ ๋ณด์ ๋ฐ๋ผ URI๋ฅผ ๋ค๋ฅด๊ฒ ์์ฒญํ ์ ์๋ค.
์ํ๋ ์กฐ๊ฑด์ ๋ฐ์ดํฐ ๋๋ ํ๋์ ๋ฐ์ดํฐ์ ๋ํ ์ ๋ณด๋ฅผ ๋ฐ์์ฌ ๋ ์ฌ์ฉํ๋ค.
Not Found์, 404 ERROR์ ๋ณด๋ธ๋ค.
๐ฐ Query parameters
Path parameters๋ณด๋ค ์ข ๋ ์์ธ์กฐ๊ฑด์ผ๋ก ์ถ์ถํ ์ ์๋ค.
์ ๋ ฌ์ด๋ ํํฐ๋ง์ ํ ๋ ์ฌ์ฉํ๋ค.
Not Found์, ํน์ ํ ๊ฐ์ ๋ณด๋ธ๋ค.
'Front-End' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ธ๊ฐ(Authorization) (0) | 2021.11.18 |
---|---|
Self Refactoring Tip (0) | 2021.11.17 |
gitignore (0) | 2021.11.10 |
await, async, promise (0) | 2021.11.10 |
Axios ๋? (0) | 2021.11.10 |
๋๊ธ