week9_incheol_5 - GANGNAM-JAVA/JAVA-STUDY GitHub Wiki
rest, restful api์ ๋ํด์ ์ค๋ช ํด๋ณด์์ค.
REST API
์ ์
HTTP URI๋ฅผ ํตํด Resource๋ฅผ ๋ช ์ํ๊ณ HTTP Method(POST, GET, PUT, DELETE)๋ฅผ ํตํด ํด๋น ์์์ ๋ํ CRUD Operation์ ์ ์ฉํ๋ ๊ฒ์ ์๋ฏธํ๋ค.
์ฅ์
- REST API ๋ฉ์์ง๊ฐ ์๋ํ๋ ๋ฐ๋ฅผ ๋ช ํํ๊ฒ ๋ํ๋ด๋ฏ๋ก ๋ถ๊ฐ์ ์ธ ์ค๋ช ์ ๋ฐ๋ฅธ ์ปค๋ฎค๋์ผ์ด์ ๋น์ฉ์ด ๋ค์ง ์๋๋ค.
- ์ฌ๋ฌ๊ฐ์ง ์๋น์ค ๋์์ธ์์ ํต์ฉ๋์ ์ฌ์ฉํ ์ ์๋ค.
- ๋ฒ์ฉ์ ์ด๋ค.
๋จ์
- ํ์ค์ด ์กด์ฌํ์ง ์๋๋ค.
- ๊ตฌํ ๋ธ๋ผ์ฐ์ ๊ฐ ์์ง ์ ๋๋ก ์ง์ํด์ฃผ์ง ๋ชปํ๋ ๋ถ๋ถ์ด ์กด์ฌํ๋ค. (PUT, DELETE)
- PUT, DELETE๋ฅผ ์ง์ํ์ง ์๋๋ค.
- GET์ Form์ ์๋ ์ ๋ณด๋ฅผ ์คํ ๋ ๋์๊ฒ ๋ฆฌ์์ค(representation)๋ฅผ ์์ฒญํ๋ ๋ป.
- POST๋ Form์ ์๋ ์ ๋ณด๋ฅผ ์คํ ๋ ์ด๊ฑธ๋ก ์ฒ๋ฆฌ๋ฅผ ์์ฒญํ๋ ๋ป.
- DELETE์์ URI๋ ๋ฆฌ์์ค๋ฅผ ์ ํํ๊ฒ ์๋ณํ๊ณ ์์ฒญ์ ๋ณด๋ด๊ธฐ ๋๋ฌธ์ Form์ ํตํด ๊ฐ์ ์ ๋ฌํ ๊ฒ ์์ผ๋ฉฐ, ๊ถํ์ ํ๋ํ๊ธฐ ์ํด์ header๋ฅผ ์ด์ฉํด์ผ ํ๋ค.
- PUT๋ ์ ์กํด์ผํ ๊ฒ์ ๋์ ๋ฆฌ์์ค๋ฅผ ๋์ฒดํ Representation ๊ทธ ์์ฒด์ธ๋ฐ, ์กฐ๊ฐ๋ Form ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ผ๊ณ ๋ณด๋ผ ์๋ ์๋ค.
RestFul API
RestFul์ REST๋ผ๋ ์ํคํ ์ฒ๋ฅผ ๊ตฌํํ๋ ์น ์๋น์ค๋ฅผ ๋ํ๋ด๊ธฐ ์ํ ์ฉ์ด์ด๋ค. RESTfulํ API๋ฅผ ๊ตฌํํ๋ ๊ทผ๋ณธ์ ์ธ ๋ชฉ์ ์ด ์ฑ๋ฅ ํฅ์์ ์๋ ๊ฒ์ด ์๋๋ผ ์ผ๊ด์ ์ธ ์ปจ๋ฒค์ ์ ํตํ API์ ์ดํด๋ ๋ฐ ํธํ์ฑ์ ๋์ด๋ ๊ฒ์ด ์ฃผ ๋๊ธฐ์ด๋, ์ฑ๋ฅ์ด ์ค์ํ ์ํฉ์์๋ ๊ตณ์ด RESTfulํ API๋ฅผ ๊ตฌํํ ํ์๋ ์๋ค.