: Representational State Transfer
REST κΈ°λ°μ APIκ° κ΅¬νλμλ€λ λ»μΌλ‘, μΉμμ μ¬μ©λλ λ°μ΄ν°λ μμ(Resorce)μ HTTP URIλ‘ νννκ³ HTTP νλ‘ν μ½μ ν΅ν΄ μμ²κ³Ό μλ΅μ μ μνλ λ°©μμ΄λ€.
: Richardson Maturity Model
리차λμ¨μ μ±μλ λͺ¨λΈμ΄μ REST APIλ₯Ό λμμΈνλ λ°©λ²μ΄λ€. 0~3λ¨κ³λ‘ μ΄λ€μ ΈμμΌλ©°, 3λ¨κ³κΉμ§μ ꡬνμ λ€μ μ΄λ €μμ 2λ¨κ³κΉμ§ ꡬνν΄λ μλ²½νκ² μΆ©μ‘±λ REST APIλΌκ³ ν μ μλ€.
: HTTPμ μμ²κ³Ό μλ΅μ λ°λΌ μ¬μ©νλ€.
νλμ URIμ νλμ HTTP λ©μλλ₯Ό μ¬μ©νλ€.
(보ν΅μ POSTλ₯Ό μ¬μ©νμ§λ§ 2λ¨κ³κΉμ§ μΆ©μ‘±νλ €λ©΄ 2λ¨κ³μ μ€λͺ
μ 보λΌ.)
: λͺ¨λ μμμ κ°κΈ° λ§λ μλν¬μΈνΈ(Endpoint)λ₯Ό μ¬μ©ν΄μΌ νλ€.
μμ²μ λ°λ₯Έ μλ΅μΌλ‘ μμμ μ λ¬ν λ μ±κ³΅/μ€ν¨ μ¬λΆλ₯Ό ν¬ν¨ν΄μ μλ΅ν΄μΌ νλ€.
* μλν¬μΈνΈλ₯Ό μμ±ν λλ λμ¬, HTTP λ©μλ, νμλ¬μ¬ λ±μ νΌνκ³ ,
리μμ€μ μ§μ€ν΄ λͺ
νν λͺ
μ¬ ννλ‘ μ΄λ¦μ μ§λλ€.
: CRUDμ λ§κ² μ μ ν HTTP λ©μλλ₯Ό μ¬μ©νλ€.
κ·Έμ λ°λ₯Έ μ μ ν μλ΅λ μμΌνλ€.
* CRUDλ?
Create - POST(μμ±)
Read - GET(μ‘°ν)
Update - PUT(μμ )
Delete - DELETE(μμ )
* μ μ ν μλ΅μ΄λ?
1ΓΓ(μ 보) - μμ²μ λ°μμΌλ©°, νλ‘μΈμ€λ₯Ό κ³μνλ€.
2ΓΓ(μ±κ³΅) - μμ²μ μ±κ³΅μ μΌλ‘ λ°κ³ μΈμνμΌλ©°, μμ©νλ€.
3ΓΓ(리λ€μ΄λ μ
) - μμ² μλ£λ₯Ό μν΄ μΆκ°μμ
μ‘°μΉκ° νμνλ€.
4ΓΓ(ν΄λΌμ΄μΈνΈ μ€λ₯) - μμ² λ¬Έλ²μ΄ μλͺ»λμκ±°λ μ²λ¦¬κ° λΆκ°νλ€.
5ΓΓ(μλ²μ€λ₯) - μλ²κ° λͺ
λ°±ν μ ν¨ν μμ²μ λν΄ μ€ν¨νλ€.
ex) 404 Not Foundλ ν΄λΌμ΄μΈνΈ μ€λ₯μ λνμ μΈ μμμ
λλ€.
: HATEOAS(Hypertext As The Engine Of Application State)λ‘ ννλλ νμ΄νΌ λ―Έλμ΄ μ»¨νΈλ‘€μ μ μ©ν κ²μ΄λ€.
μμ²μ 2λ¨κ³μ λ΄μ©μ΄ κ°μ§λ§, μλ΅μ 리μμ€ URIλ₯Ό ν¬ν¨ν λ§ν¬λ₯Ό μ½μ
ν΄μΌ νλ€.
λꡬμκ²λ μ΄λ €μλ API. λ¨, λκ° μ΄μ©νμκ° μ ν΄μ Έμκ³ , μ¬μ΄νΈ λ³ μ΄μ© μμΉμ λ°λΌ μ νμ¬νλ μλ€.
μλ²μ λ¬Έμ μ¬λ μ΄μ . κ°λ νμνμ§ μμ λλ μμ§λ§, μλ²μ νΉμ± μ μ΄μμ λΉμ©μ΄ λ€κΈ° λλ¬Έμ μλ¬΄λ° μ‘°κ±΄ μμ΄ μ΅λͺ μ ν΄λΌμ΄μΈνΈμκ² μ 보λ₯Ό μ 곡νλ μΌμ΄ μΌλ°μ μ΄μ§λ μλ€.
- μ¬μ©λ² λ°μ΄ν° μμ² μ keyλ₯Ό κ°μ΄ μ λ¬ν¨. λ‘κ·ΈμΈ μ΄μ©μ ---------------------------------------> μλ² <--------------------------------------- μμμ μ κ·Όν μ μλ κΆνμ key ννλ‘ μ 곡ν¨.