[SpringBoot] ๐ก REST API๋?
๐ REST ๋?
REST
๋Representational State Transfer
์ ์ฝ์๋ก์จ,๋ํ ์ํ ์ ์ก
์ด๋ ๋ป์ด๋ค.- ์ฆ, ์ฌ๋ฌ๊ฐ์ง ์์์ ๋ํ์ฌ ๋ํ์ ์ธ ์ด๋ฆ์ ์ง์ ํ๊ณ
URI
์ ๋ช ์๋์ด ์๋ ์ฌ๋ฌ๊ฐ์ง HTTP ๋ฉ์๋๋ฅผ ์ด์ฉํ์ฌ- ํด๋น ์์์ ์ํ๋ฅผ ์ ์กํ๋ ๊ฒ์ ์๋ฏธํ๋ค.
๐ ๊ตฌ์ฑ์์
- ์์(Resource) : URI
- ํ์(Verb) : HTTP Method
- ํํ(Representation of Resource)
๐ ํน์ง
- Server-Client (ํด๋ผ์ด์ธํธ - ์๋ฒ ์ํคํ
์ฒ)
- ์๋ก์ ๋ํ ์์กด์ฑ์ ๋ฎ์ถ๋ ๊ธฐ๋ฅ
- Stateless (๋ฌด์ํ์ฑ)
- ์๋ฒ์ ์ํ ์ ๋ณด๋ฅผ ๋ฐ๋ก ์ ์ฅํ์ง ์๋๋ค.
- ๊ฐ๊ฐ์ ๋ชจ๋ ์์ฒญ์ ์์ ํ ๋ณ๊ฐ์ ๊ฒ์ผ๋ก ์ธ์ํ๊ณ , ์ฒ๋ฆฌํ๋ค.
- Cacheable (์บ์ ๊ฐ๋ฅ์ฑ)
- ์น ํ์ค HTTP ๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ๋ฏ๋ก, ์น์์ ์ฌ์ฉํ๋ ์บ์ ๊ธฐ๋ฅ์ ์ ์ฉํ ์ ์๋ค.
- ์บ์๊ฐ ๊ฐ๋ฅํ ์ ๋ณด์ ๋ํด์๋ ์บ์์ ์ ์ฅํด๋๊ณ ๊ฐ์ ์์ฒญ์ ๋ํด์ ํด๋น ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ๋ค๊ฐ ์ฒ๋ฆฌํ๋ค.
- Layered System (๊ณ์ธตํ)
- REST ์๋ฒ๋ ๋คํธ์ํฌ ์์ ๋ค์ค ๊ณ์ธต์ผ๋ก ๊ตฌ์ฑ์ด ๊ฐ๋ฅํ๋ค.
- ํ์ง๋ง, Clients๋ REST API Server ๋ง ํธ์ถํ๋ฉด ๋๋ค.
- Uniform Interface (์ ๋ํผ ์ธํฐํ์ด์ค)
- REST ์๋ฒ๋ HTTP ํ์ค ์ ์ก ๊ท์ฝ์ ๋ฐ๋ฅด๊ธฐ ๋๋ฌธ์, ์ด๋ ํ ์ธ์ด๋ก ๋ง๋ค์๋์ง์ ์๊ด์์ด, ํ๋ซํผ ๋ฐ ๊ธฐ์ ์ ์ข ์๋์ง ์๊ณ , ํ ์ธ์ด, ํ๋ซํผ, ๊ธฐ์ ๊ณผ ํธํ ๋ฐ ์ฐ๋์ด ๊ฐ๋ฅํ๋ค.
- Code-On-Demand
- Server๋ก๋ถํฐ ์คํฌ๋ฆฝํธ๋ฅผ ๋ฐ์์ Client์์ ์คํํ๋ค.
๐ API ๋?
API
๋ Application Programming Interface
์ ์ฝ์๋ก, API
๋ ์ ํ๋ฆฌ์ผ์ด์
์์ ์ ๊ณตํ๋ ์ธํฐํ์ด์ค๋ฅผ ์๋ฏธํ๋ค.
์ฌ๋ฌ๊ฐ์ง ์ ํ๋ฆฌ์ผ์ด์
์ฌ์ด ํต์ ์ ํ๋ ๊ณผ์ ์์, ์๋ก ์ด๋ ํ ์์ฒญ์ ๋ํ ์๋ต์ด๋ ๋ฐ์์ ๋ํ ํต์ ๊ท์ฝ์ ์ ์ํ ๊ฒ์ ์ ์ํ๋ค.
๋ฐ๋ผ์ API
๋ฅผ ํตํ์ฌ ์๋ฒ๋ ํ๋ก๊ทธ๋จ ์ฌ์ด๋ฅผ ์ฐ๊ฒฐํ ์ ์๋ค.
๐ REST API
- REST API ๋ REST์ ๊ท์น์ ๋ฐ๋ฅด๋ API ๋ฅผ ์๋ฏธํ๋ค.
- REST ์ํคํ
์ณ๋ฅผ ๊ตฌํํ๋ ์น ์๋น์ค๋ฅผ
RESTFULํ๋ค
๋ผ๊ณ ํํํ๋ค.
๐ REST์ URL ์ค๊ณ ๊ท์น
- ๋ํ๋จผํธ : ๊ฐ์ฒด ์ธ์คํด์ค์ ์ ์ฌํ ๊ฐ๋
- ์ปฌ๋ ์ : ์๋ฒ์์ ๊ด๋ฆฌํ๋ ๋๋ ํฐ๋ฆฌ๋ผ๋ ๋ฆฌ์์ค
-
์คํ ์ด : ํด๋ผ์ด์ธํธ์์ ๊ด๋ฆฌํ๋ ๋ฆฌ์์ค ์ ์ฅ์
- ULR์๋ ์ ๋ณด์ ์์์ ํํํด์ผํ๋ค.
- ๋์ฌ -> ๋ช ์ฌ, ๋๋ฌธ์ -> ์๋ฌธ์
- ์ปฌ๋์ ์ด๋ฆ์ผ๋ก๋ ๋ณต์๋ช ์ฌ ์ฌ์ฉ
- ์คํ ์ด ์ด๋ฆ์ผ๋ก๋ ๋ณต์๋ช ์ฌ ์ฌ์ฉ
- ์ฌ๋์ ๊ตฌ๋ถ์(/)
- URL์ ๋ง์ง๋ง์๋ ํฌํจ๋์ง ์๋๋ค.
- ๊ณ์ธต ๊ด๊ณ๋ฅผ ๋ํ๋ด๋๋ฐ ์ฌ์ฉํ๋ค.
- ํ์ดํฐ ์ฌ์ฉ (-)
- ๋ถ๊ฐํผํ๊ฒ ๊ธด URL ๊ฒฝ๋ก๋ฅผ ๋ํ๋ผ ๋ ์ฌ์ฉ
- ์ธ๋๋ฐ (_)๋ ์ฌ์ฉํ์ง ์๋๋ค.
- ํ์ผ์ ํ์ฅ์๋ URL์ ํฌํจ๋์ง ์๋๋ค.
- HTTP ์์ ์ ๊ณตํ๋ Accept ํค๋๋ฅผ ์ฌ์ฉํ๋ค.
๊ฐ์ธ ๊ณต๋ถ ๊ธฐ๋ก์ฉ ๋ธ๋ก๊ทธ์
๋๋ค.
ํ๋ฆฌ๊ฑฐ๋ ์ค๋ฅ๊ฐ ์์ ๊ฒฝ์ฐ ์ ๋ณดํด์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.๐