RESTful API๋ ๋ฌด์์ธ๊ฐ์?
RESTful API๋ ๋ ์ปดํจํฐ ์์คํ ์ด ์ธํฐ๋ท์ ํตํด ์ ๋ณด๋ฅผ ์์ ํ๊ฒ ๊ตํํ๊ธฐ ์ํด ์ฌ์ฉํ๋ ์ธํฐํ์ด์ค์ ๋๋ค. ๋๋ถ๋ถ์ ๋น์ฆ๋์ค ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์ํ ํ์คํฌ๋ฅผ ์ํํ๊ธฐ ์ํด ๋ค๋ฅธ ๋ด๋ถ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ ์๋ ํํฐ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ํต์ ํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์๊ฐ ๊ธ์ฌ ๋ช ์ธ์๋ฅผ ์์ฑํ๋ ค๋ฉด ์ธ๋ณด์ด์ค ๋ฐํ์ ์๋ํํ๊ณ ๋ด๋ถ์ ๊ทผ๋ฌด ์๊ฐ ๊ธฐ๋ก ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ํต์ ํ๊ธฐ ์ํด ๋ด๋ถ ๊ณ์ ์์คํ ์ด ๋ฐ์ดํฐ๋ฅผ ๊ณ ๊ฐ์ ๋ฑ ํน ์์คํ ๊ณผ ๊ณต์ ํด์ผ ํฉ๋๋ค. RESTful API๋ ์์ ํ๊ณ ์ ๋ขฐํ ์ ์์ผ๋ฉฐ ํจ์จ์ ์ธ ์ํํธ์จ์ด ํต์ ํ์ค์ ๋ฐ๋ฅด๋ฏ๋ก ์ด๋ฌํ ์ ๋ณด ๊ตํ์ ์ง์ํฉ๋๋ค.
์ถ์ฒ : https://aws.amazon.com/ko/what-is/restful-api/
REST์ ๊ตฌ์ฑ์์
โญ REST๋ ์์, ํ์, ํํ์ผ๋ก ๊ตฌ์ฑ๋๋ค.
์์(Resource)๋ URI๊ฐ ๊ฐ๋ฆฌํค๋ ๋ฆฌ์์ค
ํ์(Verb)๋ HTTP Method
ํํ(Representation)์ ๋ฆฌ์์ค์ ํน์ ์์ ์ํ๋ฅผ ๋ฐ์ํ๊ณ ์๋ ์ ๋ณด
REST๋ URI๋ฅผ ํตํด ์์์ ํ์ํ๊ณ HTTP Method๋ฅผ ์ด์ฉํ์ฌ ํด๋น ์์์ ํ์๋ฅผ ์ ํด์ฃผ๋ฉฐ ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ๋ ๊ฒ์ ๋งํ๋ค.
1๏ธโฃ์์ - HTTP URI
Ex) ํ์ DB์์, 8๋ฒ์งธ ํ์์ ๊ฐ๋ฆฌํค๊ณ ์ถ์ ๊ฒฝ์ฐ '/member/8'๋ก ํํ
2๏ธโฃํ์ - HTTP Method
REST API๋ HTTP ํ๋กํ ์ฝ์ ์ธํ๋ผ๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์, ํ์์์๋ HTTP Method๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ๋ค.
๐ฉHttp Method ์ ๋ฆฌ!
GET - ๋ฆฌ์์ค์ ๋ํ ์ ๋ณด ๊ฒ์
POST - ๋ฆฌ์์ค ์์ฑ
PUT - ๋ฆฌ์์ค ์
๋ฐ์ดํธ
DELETE - ๋ฆฌ์์ค ๋๋ ๊ด๋ จ ๊ตฌ์ฑ ์์ ์ญ์
์ถ๊ฐ์ ์ผ๋ก ๋ฆฌ์์ค ์์ ์๋ PATCH ๋ ์๋ค.
PATCH ๋ ๋ฆฌ์์ค์ ์ ๋ณด๋ฅผ ์ผ๋ถ๋ถ์ ์์ ํ๋ ๊ฒ์ด๊ณ , PUT ์ ๋ฆฌ์์ค๋ฅผ ์๋ก์ด ๊ฐ์ฒด๋ก ๊ฐ์์น์ฐ๋ ๊ฒ์ด๋ค.
3๏ธโฃํํ - HTTP Message Payload
Client์ Server๊ฐ ๋ฆฌ์์ค๋ฅผ ์ฃผ๊ณ ๋ฐ๋ ํํ๋ก JSON, XML๋ฑ์ ํ์์ผ๋ก ์ฃผ๊ณ ๋ฐ์ ์ ์๋ค.
๐ฉPAYLOAD๋? ์ ์ก๋๋ ๋ฐ์ดํฐ๋ฅผ ์๋ฏธํ๋ค.
์ฐธ๊ณ
https://velog.io/@yoojkim/Rest-API-RESTful%ED%95%98%EA%B2%8C-URL-%EC%84%A4%EA%B3%84%ED%95%98%EA%B8%B0
๋๊ธ