REST API
νμ΅ λͺ©ν
- REST APIμ λν΄ μ΄ν΄ν μ μλ€.
- REST μ±μλ λͺ¨λΈμ λν΄ μ΄ν΄ν μ μλ€.
- REST API λ¬Έμλ₯Ό μ½μ μ μλ€.
- REST APIμ λ§μΆ° λμμΈν μ μλ€.
- Open APIμ API Keyμ λν΄ μ΄ν΄ν μ μλ€.
REST API λμμΈ
REST APIμμ RESTλ βRepresentational State Transferβμ μ½μλ‘, λ‘μ΄ νλ©μ λ°μ¬νμ λ Όλ¬Έμμ μΉ(http)μ μ₯μ μ μ΅λν νμ©ν μ μλ μν€ν μ²λ‘μ¨ μ²μ μκ°λμλ€. REST APIλ μΉμμ μ¬μ©λλ λ°μ΄ν°λ μμ(Resource)μ HTTP URIλ‘ νννκ³ , HTTP νλ‘ν μ½μ ν΅ν΄ μμ²κ³Ό μλ΅μ μ μνλ λ°©μμ λ§νλ€.
HTTP νλ‘ν μ½μ κΈ°λ°μΌλ‘ μμ²κ³Ό μλ΅μ λ°λΌ 리μμ€λ₯Ό μ£Όκ³ λ°κΈ° μν΄μλ μμ보기 μ½κ³ μ μμ±λ λ©λ΄νμ΄ νμνλ°, μ΄ μν μ APIκ° μνν΄μΌ νλ―λ‘ λͺ¨λκ° μ μμλ³Ό μ μλλ‘ μμ±νλ κ²μ΄ μ€μνλ€.
REST APIλ₯Ό λμμΈνλ λ°©λ²
Β
REST APIλ₯Ό μμ±ν λλ λͺ κ°μ§ μ§μΌμΌ ν κ·μΉλ€μ΄ μλ€. λ‘μ΄ νλ©μ΄ λ Όλ¬Έμμ μ μν REST λ°©λ²λ‘ μ λ³΄λ€ λ μ€μ©μ μΌλ‘ μ μ©νκΈ° μν΄ λ μ€λλ₯΄λ 리차λμ¨μ REST APIλ₯Ό μ μ μ©νκΈ° μν 4λ¨κ³ λͺ¨λΈμ λ§λ€μλ€.
REST μ±μλ λͺ¨λΈμ μ΄ 4λ¨κ³(0~3λ¨κ³)λ‘ λλμ΄μ§λ€.
μμ μ΄μΌκΈ° ν λ‘μ΄ νλ©μ μ΄ λͺ¨λΈμ λͺ¨λ λ¨κ³λ₯Ό μΆ©μ‘±ν΄μΌ REST APIλΌκ³ λΆλ₯Ό μ μλ€κ³ μ£Όμ₯νμΌλ, μ€μ λ‘ μλ°ν 3λ¨κ³κΉμ§ μ§ν€κΈ°λ μ΄λ ΅κΈ° λλ¬Έμ 2λ¨κ³ κΉμ§λ§ μ μ©ν΄λ μ’μ API λμμΈμ΄λΌκ³ λ³Ό μ μκ³ , μ΄λ° κ²½μ°λ₯Ό HTTP APIλΌκ³ λ λΆλ₯Έλ€.
REST μ±μλ λͺ¨λΈ - 0λ¨κ³
REST μ±μλ λͺ¨λΈμ λ°λ₯΄λ©΄, 0λ¨κ³μμλ λ¨μν HTTP νλ‘ν μ½μ μ¬μ©νκΈ°λ§ ν΄λ λλ€. λ¬Όλ‘ μ΄ κ²½μ°, ν΄λΉ APIλ₯Ό REST APIλΌκ³ ν μλ μμΌλ©°, 0λ¨κ³λ REST APIλ₯Ό μμ±νκΈ° μν κΈ°λ³Έ λ¨κ³μ΄λ€.
λ¨μν HTTP νλ‘ν μ½μ μ¬μ©νλ κ²μ΄ REST APIμ μΆλ°μ μ΄λ€.
REST μ±μλ λͺ¨λΈ - 1λ¨κ³
REST μ±μλ λͺ¨λΈμ λ°λ₯΄λ©΄, 1λ¨κ³μμλ κ°λ³ 리μμ€(Resource)μμ ν΅μ μ μ€μν΄μΌ νλ€. μ‘°κΈ λ μ½κ² λ§νλ©΄, μμ REST APIλ μΉμμ μ¬μ©λλ λͺ¨λ λ°μ΄ν°λ μμ(Resource)μ HTTP URIλ‘ νννλ€κ³ μ΄μΌκΈ° νλ€. λ°λΌμ λͺ¨λ μμμ κ°λ³ 리μμ€μ λ§λ μλν¬μΈνΈ(Endpoint)λ₯Ό μ¬μ©ν΄μΌ νλ©° μμ²νκ³ λ°λ μμμ λν μ 보λ₯Ό μλ΅μΌλ‘ μ λ¬ν΄μΌ νλ€λ κ²μ΄ 1λ¨κ³μ ν΅μ¬μ΄λ€.
μ΄λ€ 리μμ€λ₯Ό λ³νμν€λμ§ νΉμ μ΄λ€ μλ΅μ΄ μ 곡λλμ§μ λ°λΌ κ°κΈ° λ€λ₯Έ μλν¬μΈνΈλ₯Ό μ¬μ©νκΈ° λλ¬Έμ, μ μ ν μλν¬μΈνΈλ₯Ό μμ±νλ κ²μ΄ μ€μνλ€.
μνΈν¬μΈνΈ μμ± μμλ λμ¬, HTTP λ©μλ, νΉμ μ΄λ€ νμμ λν λ¨μ΄ μ¬μ©μ μ§μνκ³ , 리μμ€μ μ§μ€ν΄ λͺ μ¬ ννμ λ¨μ΄λ‘ μμ±νλ κ²μ΄ λ°λμ§ν λ°©λ²μ΄λ€.
λλΆμ΄ μμ²μ λ°λ₯Έ μλ΅μΌλ‘ 리μμ€λ₯Ό μ λ¬ν λμλ μ¬μ©ν 리μμ€μ λν μ 보μ ν¨κ» 리μμ€ μ¬μ©μ λν μ±κ³΅/μ€ν¨ μ¬λΆλ₯Ό λ°νν΄μΌ νλ€.
REST μ±μλ λͺ¨λΈ - 2λ¨κ³
REST μ±μλ λͺ¨λΈ 2λ¨κ³μμλ CRUDμ λ§κ² μ μ ν HTTP λ©μλλ₯Ό μ¬μ©νλ κ²μ μ€μ μ λλ€.
HTTP λ©μλλ₯Ό μ¬μ©ν λ λͺκ°μ§ κ·μΉμλ μ μν΄μΌ νλ€.
GET
λ©μλ κ°μ κ²½μ°μλ μλ²μ λ°μ΄ν°λ₯Ό λ³νμν€μ§ μλ μμ²μ μ¬μ©ν΄μΌ νλ€.POST
λ©μλλ μμ²λ§λ€ μλ‘μ΄ λ¦¬μμ€λ₯Ό μμ±νκ³PUT
λ©μλλ μμ²λ§λ€ κ°μ 리μμ€λ₯Ό λ°ννλ€. μ΄λ κ² λ§€ μμ²λ§λ€ κ°μ 리μμ€λ₯Ό λ°ννλ νΉμ§μ λ©±λ±(idempotent)νλ€κ³ νλ€. κ·Έλ κΈ° λλ¬Έμ λ©±λ±μ±μ κ°μ§λPUT
κ³Ό κ·Έλ μ§ μμPOST
λ©μλλ ꡬλΆνμ¬ μ¬μ©ν΄μΌ νλ€.PUT
λ©μλμPATCH
λ©μλλ ꡬλΆν΄μΌ νλ€.PUT
μ κ΅μ²΄,PATCH
λ μμ μ μ©λλ‘ μ¬μ©νλ€.
REST μ±μλ λͺ¨λΈ - 3λ¨κ³
λ§μ§λ§ λ¨κ³λ HATEOAS(Hypermedia As The Engine Of Application State)λΌλ μ½μ΄λ‘ ννλλ νμ΄νΌλ―Έλμ΄ μ»¨νΈλ‘€μ μ μ©νλ€. 3λ¨κ³μ μμ²μ 2λ¨κ³μ λμΌνμ§λ§, μλ΅μλ 리μμ€μ URIλ₯Ό ν¬ν¨ν λ§ν¬μμλ₯Ό μ½μ νμ¬ μμ±ν΄μΌ νλ€.
μ΄λ μλ΅μ λ€μ΄κ°κ² λλ λ§ν¬ μμλ λ€μμ ν μ μλ λ€μν μ‘μ λ€μ μν΄ λ§μ νμ΄νΌλ―Έλμ΄ μ»¨νΈλ‘€μ ν¬ν¨νκ³ μλ€.
Open API & API Key
Β
Open API
open APIλ κ°λ°μλΌλ©΄ λꡬλ μ¬μ©ν μ μλλ‘ κ³΅κ°λ APIλ₯Ό λ§νλ€.
Β
μ λΆμμλ 곡곡λ°μ΄ν°μ μ½κ² μ κ·Όν μ μλλ‘ Open APIμ ννλ‘ κ³΅κ³΅λ°μ΄ν°λ₯Ό μ 곡νλ€.
API Key
API Keyλ μλ²μ λ¬Έμ μ¬λ μ΄μ λ‘, μλ²λ₯Ό μ΄μ©νλ λ° λΉμ©μ΄ λ°μνκΈ° λλ¬Έμ μλ² μ μ₯μμ μλ¬΄λ° μ‘°κ±΄ μμ΄ μ΅λͺ μ ν΄λΌμ΄μΈνΈμκ² λ°μ΄ν°λ₯Ό μ 곡ν μ무λ μλ€.
Β
API Keyκ° νμν κ²½μ° λ‘κ·ΈμΈν μ΄μ©μμκ² μμμ μ κ·Όν μ μλ κΆνμ API Keyμ ννλ‘ μ 곡νκ³ , λ°μ΄ν°λ₯Ό μμ²ν λ API Keyλ₯Ό κ°μ΄ μ λ¬ν΄μΌ μνλ μλ΅μ λ°μ μ μλ€.
Leave a comment