RESTμ λ»μ΄ 무μμΈκ°μ?
HTTP URI λ₯Ό ν΅ν΄ μμ(Resource)μ λͺ μνκ³ HTTP Methodλ₯Ό ν΅ν΄ ν΄λΉ μμμ λν CRUD μμ μ μ μ©νλ κ²μΌλ‘ μΉ μλΉμ€κ° μ΄λ»κ² μλνλ μ§μ λν μν€ν μ² μ€νμΌ νΉμ μ€κ³μμΉμ΄λ€.
REST μ€κ³ κ·μΉ λͺκ°μ§λ§ μ€λͺ ν΄μ£ΌμΈμ
- URIλ λμ¬λ³΄λ€λ λͺ μ¬λ₯Ό, λλ¬Έμ보λ€λ μλ¬Έμλ₯Ό μ¬μ©ν΄μΌνλ€.
- λ§μ§λ§μ μ¬λμλ₯Ό ν¬ν¨νμ§ μλλ€.
- μΈλλ° λμ νμ΄νμ μ¬μ©νλ€.
- νμΌ νμ₯μλ URIμ ν¬ν¨νμ§ μλλ€.
- νμλ₯Ό ν¬ν¨νμ§ μλλ€.
RESTμ νΉμ§μ λν΄ μ€λͺ ν΄μ£ΌμΈμ
- Server-Client (μλ²-ν΄λΌμ΄μΈνΈ ꡬ쑰)
- Stateless (무μν)
- μλ²λ ν΄λΌμ΄μΈνΈμ μμ²μ μ μ₯νμ§ μλλ€. λ°λΌμ κ°κ°μ μμ²μ λ 립μ μΌλ‘ μ²λ¦¬λλ€.
- Cacheable (μΊμ μ²λ¦¬ κ°λ₯)
- HTTP νΉμ§μΈ μΊμ± κΈ°λ₯μ μ μ©ν μ μλ€. μ΄λ₯Ό ν΅ν΄ μλ΅ μκ°μ΄ λΉ¨λΌμ§λ€.
- Layered System (κ³μΈ΅ν)
- ν΄λΌμ΄μΈνΈλ REST API Server λ§ νΈμΆνκ³ μλ²λ λ€μ€ κ³μΈ΅μΌλ‘ ꡬμ±λ μ μλ€.
- Uniform Interface (μΈν°νμ΄μ€ μΌκ΄μ±)
- URI λ‘ μ§μ ν Resourceμ λν μ‘°μμ ν΅μΌλκ³ νμ μ μΈ μΈν°νμ΄μ€λ‘ μννλ€.
REST APIμ ꡬμ±μ λν΄ λ§μν΄ μ£ΌμΈμ.
REST APIμ ꡬμ±μΌλ‘λ μμ, νμ, ννμ΄ μμ΅λλ€. μμμ μλ³μ URI νλ©°, μμμ λν νμλ HTTP λ©μλλ‘ λνλ λλ€. ννμ ν΄λΌμ΄μΈνΈμ μλ²κ° λ°μ΄ν°λ₯Ό μ£Όκ³ λ°λ ννλ‘, μ λ¬λλ λ°μ΄ν°λ JSON, XML λ±μΌλ‘ ννλ©λλ€.
RESTful APIλ 무μμ μλ―Ένλ 건κ°μ?
REST μ€κ³ κ·μΉμ μ§ν€λ©° APIλ₯Ό μ 곡νλ μλΉμ€λ₯Ό RESTfulνλ€κ³ νλ©°, REST κ·μΉμ μ μ€μν μλ‘ RESTfulν APIλΌκ³ ν μ μμ΅λλ€.
REST API λ₯Ό μ΅λν RESTful νκ² μ¬μ©νκΈ° μν κ·μΉμ μκ°λλ λλ‘ λ§μν΄ μ£ΌμΈμ.
- μμμ λν νμλ HTTP λ©μλλ‘ λνλΈλ€.
- HTTP λ©μλλ νμμ λν ννμ΄ URIμ λ€μ΄κ°λ©΄ μλλ€.
- URI κ²½λ‘λ μ¬λμλ‘ κ³μΈ΅ κ΄κ³λ₯Ό νννλ©°, URI λ§μ§λ§μ μ¬λμκ° λ€μ΄κ°λ©΄ μ λλ€.
- URI κ²½λ‘μλ μΈλλ°λ₯Ό μ¬μ©νλ©΄ μ λκ³ , μλ¬Έμ μ¬μ©μ μ§ν₯νλ€.