[λ€νΈμν¬] REST APIλ?(2) μ₯λ¨μ , Restful
1οΈβ£ REST μ₯μ
π HTTP νλ‘ν μ½μ μΈνλΌλ₯Ό κ·Έλλ‘ μ¬μ©νλ―λ‘ REST API μ¬μ©μ μν λ³λμ μΈνλΌ κ΅¬μΆμ΄ νμ μλ€.
π HTTP νλ‘ν μ½μ νμ€μ μ΅λν νμ©νμ¬ μ¬λ¬ μΆκ°μ μΈ μ₯μ μ ν¨κ» κ°μ Έκ° μ μκ² ν΄μ€λ€.
π HTTP νλ‘ν μ½μ λ°λ₯΄λ λͺ¨λ νλ«νΌμμ μ¬μ© κ°λ₯νλ€.
π REST API λ©μμ§κ° μλνλ λ°λ₯Ό λͺ ννκ² λνλ΄λ―λ‘ μλνλ λ°λ₯Ό μ½κ² νμ ν μ μλ€.
π μλ²μ ν΄λΌμ΄μΈνΈμ μν μ λͺ ννκ² λΆλ¦¬νλ€.
2οΈβ£ REST λ¨μ
π νμ€μ΄ μμ²΄κ° μ‘΄μ¬νμ§ μμ μ μκ° νμνλ€.
π HTTP Method ννκ° μ νμ μ΄λ€.
π λΈλΌμ°μ λ₯Ό ν΅ν΄ ν μ€νΈν μΌμ΄ λ§μ μλΉμ€λΌλ©΄ μ½κ² κ³ μΉ μ μλ URLλ³΄λ€ Header μ 보μ κ°μ μ²λ¦¬ν΄μΌ νλ―λ‘ μ λ¬Έμ±μ΄ μꡬλλ€.
3οΈβ£ REST μ€κ³ μμ
1. URIλ λμ¬λ³΄λ€ λͺ μ¬λ₯Ό, λλ¬Έμ보λ€λ μλ¬Έμλ₯Ό μ¬μ©νμ¬μΌ νλ€.
λμ μμ http://hobin49.com/Playing/
μ’μ μμ http://hobin49.com/play/
2. λ§μ§λ§μ μ¬λμ(/)λ₯Ό ν¬ν¨νμ§ μλλ€.
λμ μμ http://hobin49.com/test/
μ’μ μμ http://hobin49.com/test
3. μΈλλ° λμ νμ΄ν°μ μ¬μ©νλ€.
λμ μμ http://hobin49.com/test_blog
μ’μ μμ http://hobin49.com/test-blog
4. νμΌνμ₯μλ URIμ ν¬ν¨νμ§ μλλ€.
λμ μμ http://hobin49.com/photo.jpg
μ’μ μμ http://hobin49.com/photo
5.νμλ₯Ό ν¬ν¨νμ§ μλλ€.
λμ μμ http://hobin49.com/delete-post/1
μ’μ μμ http://hobin49.com/post/1
4οΈβ£ RESTfulμ΄λ?
π RESTfulμ΄λ Restμ μ리λ₯Ό λ°λ₯΄λ μμ€ν μ μλ―Ένλ€.
π REST APIμ μ€κ³ κ·μΉμ μ¬λ°λ₯΄κ² μ§ν¨ μμ€ν μ RESTful νλ€ λ§ν μ μλ€.
π λͺ¨λ CRUD κΈ°λ₯μ POSTλ‘ μ²λ¦¬νλ API νΉμ URIκ·μΉμ μ¬λ°λ₯΄κ² μ§ν€μ§ μμ APIλ REST API μ€κ³ κ·μΉμ μ¬λ°λ₯΄κ² μ§ν€μ§ λͺ»ν μμ€ν μ REST APIλ₯Ό μ¬μ©νμμ§λ§ RESTful νμ§ λͺ»ν μμ€ν μ΄λΌκ³ ν μ μλ€.