REST API μ μ
REST APIλΌλ λ¨μ΄μμ μ¬μ©λλ
REST( REpresentational State Transfer μ μ½μλ‘ μννΈμ¨μ΄ νλ‘κ·Έλ¨ μν€ν μ²μ ν νμμ λλ€.)
νκ΅λ§λ‘ νμ΄λ³΄μλ©΄ μμμ μ΄λ¦(μμμ νν)μΌλ‘ ꡬλΆνμ¬ ν΄λΉ μμμ μν(μ 보)λ₯Ό μ£Όκ³ λ°λ λͺ¨λ κ²
κ°λ μ ν μ€λ‘ μ μνμλ©΄ μλμ κ°μ΄ μ μν μ μμ΅λλ€.
HTTP ν΅μ μμ μ΄λ€ μμμ λν CRUD μμ²μ Resourceμ Methodλ‘ νννμ¬ νΉμ ν ννλ‘ μ λ¬νλ λ°©μ |
REST APIμ λ±μ₯μ 2000λ λμ HTTPμ μ£Όμ μ μ μ€ ν μ¬λμΈ λ‘μ΄ νλ©μ΄ κ·Έ λΉμ μΉ μ€κ³μ μ°μμ±μ λΉν΄ μ λλ‘ μ¬μ©λμ§ λͺ»νλ λͺ¨μ΅μ μνκΉμνλ©° μΉμ μ₯μ μ μ΅λν νμ©ν μ μλ μν€ν μ²(Architecture : μμ€ν λͺ©μ μ λ¬μ±νκΈ° μν΄ μμ€ν μ μνΈμμ© λ±μ μμ€ν λμμΈμ λν μ μ½ λ° μ€κ³)λ‘μ¨ RESTλ₯Ό λ°νν¨.
REST ꡬμ±
REST APIλ λ€μμ ꡬμ±μΌλ‘ μ΄λ£¨μ΄μ Έμμ΅λλ€.
1) μμ (Resource) - URL
- λͺ¨λ μμμλ κ³ μ ν IDκ° μ‘΄μ¬νκ² λκ³ , μ΄ μμμ Serverμ μ‘΄μ¬νλ€.
- μμμ ꡬλ³νλ IDλ HTTP URLλ‘ κ΅¬λΆνκ² λλ€. (ex) /members/1
- Clientλ URLμ μ΄μ©νμ¬ μμμ μ§μ νκ³ ν΄λΉ μμμ λν μ‘°μμ Serverμ μμ²νλ€
2) νμ (Verb) - Http method
- Clientλ HTTP Method(POST, GET, DELETE, PUT)λ₯Ό μ΄μ©νμ¬ μ§μ ν μμμ λν μ‘°μμ μμ²νλ€.
3) νν (Representations)
- Clientκ° Serverμ μμμ λν μ‘°μμ μμ²νλ©΄ Serverλ μ΄μ λν μ μ ν μλ΅(Representation)μ 보λΈλ€.
REST νΉμ§
REST μν€νμ²λ₯Ό μ΄μ©νμ¬ APIλ₯Ό μ€κ³νμμ λ μλμ κ°μ μ΄μ μ κ°μ§λλ€.
1) ν΄λΌμ΄μΈνΈ / μλ² κ΅¬μ‘°
ν΄λΌμ΄μΈνΈλ μ μ μ κ΄λ ¨λ μ²λ¦¬, μλ²λ REST Apiλ₯Ό μ 곡ν¨μΌλ‘μ¨ κ°κ°μ μν μ΄ νμ€νκ² κ΅¬λΆλκ³ μΌκ΄μ μΈ μΈν°νμ΄μ€λ‘ λΆλ¦¬λμ΄ μλν μ μκ² νλ€.
2) 무μνμ± (Stateless)
RESTλ HTTPμ νΉμ±μ μ΄μ©νκΈ° λλ¬Έμ 무μνμ±μ κ°λλ€. μ¦ μλ²μμ μ΄λ€ μμ μ νκΈ° μν΄ μν μ 보λ₯Ό κΈ°μ΅ν νμκ° μκ³ λ€μ΄μ¨ μμ²μ λν΄ μ²λ¦¬λ§ ν΄μ£Όλ©΄ λκΈ° λλ¬Έμ ꡬνμ΄ μ½κ³ λ¨μν΄μ§λ€.
3) μΊμ μ²λ¦¬ κ°λ₯(Cacheable)
HTTPλΌλ κΈ°μ‘΄ μΉ νμ€μ μ¬μ©νλ RESTμ νΉμ§ λλΆμ κΈ°λ³Έ μΉμμ μ¬μ©νλ μΈνλΌλ₯Ό κ·Έλλ‘ μ¬μ© κ°λ₯νλ€.
4) μ체 νν ꡬ쑰(Self-descriptiveness)
Jsonμ μ΄μ©ν λ©μμ§ ν¬λ§·μ μ΄μ©νμ¬ μ§κ΄μ μΌλ‘ μ΄ν΄ν μ μκ³ REST api λ©μμ§λ§μΌλ‘ κ·Έ μμ²μ΄ μ΄λ€ νμλ₯Ό νλμ§ μ μ μλ€. ( μλ₯Ό λ€λ©΄ tistory/seungwon/life/food/pizzaμ΄κ²λ§ λ³΄κ³ λ pizzaκ° food μ΄λ©° lifeμ μν κ²μ λ¨λ²μ μ μ μλ€.)
5) κ³μΈ΅ν(Layered System)
REST μλ²λ λ€μ€ κ³μΈ΅μΌλ‘ ꡬμ±λ μ μμΌλ©°, 보μ, λ‘λ λ°Έλ°μ±, μνΈν κ³μΈ΅ λ±μ μΆκ°ν΄ ꡬ쑰μμ μ μ°μ±μ λ μ μκ³ , PROXY, κ²μ΄νΈμ¨μ΄μ κ°μ λ€νΈμν¬ κΈ°λ°μ μ€κ°λ§€μ²΄λ₯Ό μ¬μ©ν μ μλ€.
6) μ λνΌ μΈν°νμ΄μ€(Uniform)
Uniform Interfaceλ Http νμ€μλ§ λ°λ₯Έλ€λ©΄ λͺ¨λ νλ«νΌμμ μ¬μ©μ΄ κ°λ₯νλ©°, URIλ‘ μ§μ ν 리μμ€μ λν μ‘°μμ κ°λ₯νκ² νλ μν€ν μ² μ€νμΌμ λ§νλ€.
REST API λμμΈ κ°μ΄λ
REST API μ€κ³ μ κ°μ₯ μ€μν νλͺ©μ λ κ°μ§μ΄λ€.
1. URLμ μ 보μ μμμ ννν΄μΌ νλ€.
2. μμμ λν νμλ HTTP Method(GET, POST, PUT, DELETE)λ‘ νννλ€.
μΆμ² :
velog.io/@kjh107704/REST-%EC%84%9C%EB%B2%84-REST-API%EB%9E%80
'Development > Java' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
κ°μ²΄ μ§ν₯ νλ‘κ·Έλλ°μ΄λ (0) | 2020.12.29 |
---|