REST
REST (Representational State Transfer) λ μμμ μ΄λ¦μΌλ‘ ꡬλΆνμ¬ ν΄λΉ μμμ μν μ 보λ₯Ό μ£Όκ³ λ°λ λͺ¨λ κ²μ μλ―Έ νλ€.
ꡬμ±μμ
- μμ
- λͺ¨λ μμμ κ³ μ ν ID κ° μ‘΄μ¬νλ©° μ΄ μμμ Server μ μ‘΄μ¬νλ€.
- Client λ URI λ₯Ό μ΄μ©νμ¬ μμμ μ§μ νκ³ ν΄λΉ μμμ μνμ 보μ λν μ‘°μμ Server μ μμ² νκ² λλ€.
- νμ
- HTTP Method μ΄λ€.
- GET, POST, PUT, DELETE μ κ°μ λ©μλλ₯Ό μ 곡νλ©° κ°κ°μ μλ―Έμ μνμ΄ λ€λ₯΄λ€.
- νν
- Client κ° μμμ μνμ 보 μ‘°μμ μμ²νλ©΄ Server λ μ΄μ λν μλ΅μ 보λ΄κ² λλ€.
- λλΆλΆμ JSON λ° XML λ₯Ό ν΅ν΄ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°λκ²μ΄ μΌλ°μ μ΄λ€.
νΉμ§
1. μ λνΌ μΈν°νμ΄μ€ (Uniform Interface)
- μ§μ λ URI μΈν°νμ΄μ€μμ μμ μ 곡νλ€.
- νμ€ HTTP νλ‘ν μ½μ λ°λ₯΄λ νλ«νΌμμ μ¬μ© κ°λ₯νλ€.
2. 무μνμ± (Stateless)
- μνλ₯Ό κ°μ§ μμ μνμ 보 (μΈμ , μΏ ν€) λ₯Ό λ°λ‘ μ μ₯νκ±°λ κ΄λ¦¬ν νμκ° μλ€.
- λ¨μν API μλ²λ λ€μ΄μ€λ μμ²λ§ μ²λ¦¬νμ¬ κ΅¬νμ΄ λ¨μν΄μ§κ³ μλΉμ€μ μμ λκ° λμμ§λ€.
3. μΊμ κ°λ₯ (Cacheable)
- νμ€ HTTP νλ‘ν μ½μ κ·Έλλ‘ μ¬μ©νλ―λ‘ μΉμμ μ¬μ©νλ―λ‘ ν΄λΉ μΈνλΌλ₯Ό κ·Έλλ‘ νμ©ν μ μλ€.
- μΊμ μ¬μ©μΌλ‘ μΈν μλ΅μ΄ λΉ¨λΌμ§κ³ REST Server νΈλμ μ μ΄ λ°μλμ§ μκΈ° λλ¬Έμ μ 체μ μΈ μλ΅μκ° λ° μ±λ₯, μμμ ν¨μΈμ ν₯μ μν¬μ μλ€.
4. μ체 νν ꡬ쑰 (Self-descriptiveness)
- REST API μ λ©μΈμ§λ§ λ³΄κ³ λ μ΄λ₯Ό μ½κ² μ΄ν΄ν μ μλ μ체 νν κ΅¬μ‘°λ‘ λμ΄ μλ€λ κ² μ΄λ€.
5. Clinet / Server ꡬ쑰
- μμμ΄ μλ μͺ½μ Server, μμμ μμ²νλ μͺ½μ Client λ‘ κ΅¬μ±λλ€.
- Server : API λ₯Ό μ 곡νκ³ λΉμ§λμ€ λ‘μ§ μ²λ¦¬ λ° μ μ₯μ μ± μμ§λ€.
- Client : μ¬μ©μ μΈμ¦μ΄λ context (μΈμ , λ‘κ·ΈμΈ μ 보) λ±μ μ§μ κ΄λ¦¬νκ³ μ± μμ§λ€.
- μλ‘κ°μ μμ‘΄μ±μ΄ μ€μ΄λ λ€.
6. κ³μΈ΅ν μμ€ν (Layerd System)
- Client λ Server λ§ νΈμΆνλ€.
- API Server λ μμ λΉμ§λμ€ λ‘μ§μ μννκ³ μλ¨μ 보μ, λ‘λλ°Έλ°μ±, μνΈν, μΈμ¦ λ±μ μΆκ°νμ¬ κ΅¬μ‘°μ μ μ°μ±μ κ°μ Έκ°λ€.
- νλ‘μ νΉμ κ²μ΄νΈμ¨μ΄μ κ°μ λ€νΈμν¬ κΈ°λ°μ μ€κ° 맀체λ₯Ό μ¬μ©ν μ μλ€.
REST API
REST κΈ°λ°μ μλΉμ€ API λ‘ κ΅¬νν κ² μ΄λ€.
μ€κ³
- URI λ μ 보μ μμμ ννν΄μΌ νλ€.
- ꡬλΆμ ( / ) λ κ³μΈ΅κ΄κ³λ₯Ό λνλ΄λλ° μ¬μ©
- URI λ§μ§λ§ λ¬Έμλ‘ μ¬λμ ( / ) λ₯Ό μ¬μ©νμ§ μλλ€.
- νμ΄ν ( - ) μ URI κ°λ μ±μ λμ΄λλ° μ¬μ©
- μΈλλ° ( _ ) λ μ¬μ©νμ§ μλλ€.
- κ²½λ‘ μ 보λ μλ¬Έμλ‘ νλ€.
- νμΌ νμ₯μλ ν¬ν¨νμ§ μλλ€.
- Method λ μλ―Έμ μνμ΄ λ§μμΌ νλ€.
Method | μν |
---|---|
GET | 리μμ€λ₯Ό μμ²νλ€. |
POST | 리μμ€λ₯Ό μμ±νλ€. |
PUT | 리μμ€λ₯Ό μμ νλ€. |
DELETE | 리μμ€λ₯Ό μμ νλ€. |