Representational State Transferμ μ½μ
μμμ μ΄λ¦μΌλ‘ ꡬλΆνμ¬ ν΄λΉ μμμ μνλ₯Ό μ£Όκ³ λ°λ λͺ¨λ κ²μ μλ―Έ
μ¦, μμ(resource)μ νν(representation)μ μ΄ν μν μ λ¬
μμ : ν΄λΉ μννΈμ¨μ΄κ° κ΄λ¦¬νλ λͺ¨λ κ²
=>λ¬Έμ, κ·Έλ¦Ό, λ°μ, ν΄λΉ μννΈμ¨μ΄
μμμ νν : κ·Έμμμ νννκΈ° μν μ΄λ¦
=>μ λ³΄κ° μ§μλ λ , 'data'λ₯Ό μμμ ννμΌλ‘ μ μ
> μν(μ 보) μ λ¬
λ°μ΄ν°κ° μμ²λμ΄μ§λ μμ μμ μμμ μνλ₯Ό μ λ¬
JSON κ³Ό XMLλ₯Ό ν΅ν¬μ¨ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°λ κ²μ΄ μΌλ°μ
HTTP URLλ₯Ό ν΅ν΄ μμμ λͺ μνκ³ , HTTP Method(GET, POST, PUT, DELETE)λ₯Ό ν΅ν΄ ν΄λΉ μμμ λν CRUD Operationμ μ μ©νλ κ²μ λλ€.
μ¦, REST μμ κΈ°λ°μ κ΅¬μ‘°μΈ (ROA, Resource Oriented Architecture) μ€κ³ μ€μ¬μ Resource κ° μκ³ HTTP Methodeλ₯Ό ν΅ν΄ Resourceλ₯Ό μ²λ¦¬νλλ‘ μ€κ³λ μν€ν μ³μ λλ€.
CRUD λ?
Create : μμ±(POST)
Read : μ‘°ν (GET)
Update : μμ (PUT)
HEAD : header μ 보쑰ν(HEAD)
μμ (Resource) : URI
λͺ¨λ μμμ κ³ μ ν IDκ° μ‘΄μ¬, μμμ Server μ‘΄μ¬
μμμ IDλ '/api/data/name_id' μ κ°μ HTTP URI μ λλ€.
Clientλ URIλ₯Ό μ΄μ©ν΄μ μμμ μ§μ νκ³ ν΄λΉ μμμ μνμ λν μ‘°μμ
Serverμ μμ²νλ€.
νμ (Verb) : HTTP Method
REST Server : APIλ₯Ό μ 곡νκ³ λΉμ¦λμ€ λ‘μ§ μ²λ¦¬ λ° μ μ₯
Client : μ¬μ©μ μΈμ¦μ΄λ context(μΈμ , λ‘κ·ΈμΈμ 보) λ±μ μ§μ κ΄λ¦¬νκ³ μ± μμ§λ€..