: μμμ μ΄λ¦(μμμ νν)μΌλ‘ ꡬλΆνμ¬ ν΄λΉ μμμ μν(μ 보)λ₯Ό μ£Όκ³ λ°λ λͺ¨λ κ²μ μλ―Έ
μννΈμ¨μ΄ κ°λ° μν€ν μ²μ ν νμμ΄λ©°, RESTλ κΈ°λ³Έμ μΌλ‘ μΉμ κΈ°μ‘΄ κΈ°μ κ³Ό HTTP νλ‘ν μ½μ κ·Έλλ‘ νμ©νκΈ° λλ¬Έμ μΉμ μ₯μ μ μ΅λν νμ©ν μ μλ μν€ν μ² μ€νμΌμ΄λ€.
RESTλ λ€νΈμν¬ μμμ Clientμ Server μ¬μ΄μ ν΅μ λ°©μ μ€ νλμ΄λ€.
HTTP URI(Uniform Resource Identifier)λ₯Ό ν΅ν΄ μμ(Resource)μ λͺ μ
HTTP Method(POST, GET, PUT, DELETE) μ¬μ©
ν΄λΉ μμ(URI)μ λν CRUD Operationμ μ μ©νλ κ²μ μλ―Ένλ€.
μμ (Resource): URI
νμ (Verb): HTTP Method
νν (Representation of Resource)
λΆμ° μμ€ν
μ μν¨μ΄λ€.
κ±°λν μ ν리μΌμ΄μ
μ λͺ¨λ, κΈ°λ₯λ³λ‘ λΆλ¦¬νκΈ° μ¬μμ‘λ€. RESTful APIλ₯Ό μλΉμ€νκΈ°λ§ νλ©΄ μ΄λ€ λ€λ₯Έ λͺ¨λ λλ μ ν리μΌμ΄μ
λ€μ΄λΌλ RESTful APIλ₯Ό ν΅ν΄ μνΈκ°μ ν΅μ μ ν μ μλ€.
WEBλΈλΌμ°μ μΈμ ν΄λΌμ΄μΈνΈλ₯Ό μν¨μ΄λ€(λ©ν° νλ«νΌ).
μ΅κ·Όμ μλ² νλ‘κ·Έλ¨μ λ€μν λΈλΌμ°μ μ μλλ‘μ΄ν°, μμ΄ν°κ³Ό κ°μ λͺ¨λ°μΌ λλ°μ΄μ€μμλ ν΅μ μ ν μ μμ΄μΌ νλ€.
μ΄λ¬ν λ©ν° νλ«νΌμ λν μ§μμ μν΄ μλΉμ€ μμμ λν μν€ν
μ²λ₯Ό μΈμ°κ³ μ΄μ©νλ λ°©λ²μ λͺ¨μν κ²°κ³Ό, RESTμ κ΄μ¬μ κ°μ§κ² λμλ€.
REST APIμ μ μ
REST API(RESTful API)λ REST μν€ν μ²μ μ μ½ μ‘°κ±΄μ μ€μνλ μ ν리μΌμ΄μ νλ‘κ·Έλλ° μΈν°νμ΄μ€λ₯Ό λ»νλ€.
μ΅κ·Ό OpenAPI(λꡬλ μ¬μ©ν μ μλλ‘ κ³΅κ°λ API: κ΅¬κΈ λ§΅, 곡곡 λ°μ΄ν° λ±), λ§μ΄ν¬λ‘ μλΉμ€(νλμ ν° μ ν리μΌμ΄μ μ μ¬λ¬ κ°μ μμ μ ν리μΌμ΄μ μΌλ‘ μͺΌκ°μ΄ λ³κ²½κ³Ό μ‘°ν©μ΄ κ°λ₯νλλ‘ λ§λ μν€ν μ²) λ±μ μ 곡νλ μ 체 λλΆλΆμ REST APIλ₯Ό μ 곡νλ€.
μ¬λ΄ μμ€ν λ€λ REST κΈ°λ°μΌλ‘ μμ€ν μ λΆμ°ν΄ νμ₯μ±κ³Ό μ¬μ¬μ©μ±μ λμ¬ μ μ§λ³΄μ λ° μ΄μ©μ νΈλ¦¬νκ² ν μ μλ€.
RESTλ HTTP νμ€μ κΈ°λ°μΌλ‘ ꡬννλ―λ‘, HTTPλ₯Ό μ§μνλ νλ‘κ·Έλ¨ μΈμ΄λ‘ ν΄λΌμ΄μΈνΈ, μλ²λ₯Ό ꡬνν μ μλ€.
REST APIλ₯Ό μ μνλ©΄ λΈνμ΄ ν΄λΌμ΄μΈνΈ λΏ μλλΌ, μλ°, C#, μΉ λ±μ μ΄μ©ν΄ ν΄λΌμ΄μΈνΈλ₯Ό μ μν μ μλ€.
μ΄ν΄νκΈ° μ½κ³ μ¬μ©νκΈ° μ¬μ΄ REST APIλ₯Ό λ§λλ κ²
RESTfulν APIλ₯Ό ꡬννλ κ·Όλ³Έμ μΈ λͺ©μ μ΄ μ±λ₯ ν₯μμ μλ κ²μ΄ μλλ€. μΌκ΄μ μΈ μ»¨λ²€μ μ ν΅ν APIμ μ΄ν΄λ λ° νΈνμ±μ λμ΄λ κ²μ΄ μ£Ό λͺ©μ μ΄λ€.
1) μ¬λμ ꡬλΆμ(/)λ κ³μΈ΅ κ΄κ³λ₯Ό λνλ΄λ λ° μ¬μ©
2) URI λ§μ§λ§ λ¬Έμλ‘ μ¬λμ(/)λ₯Ό ν¬ν¨νμ§ μλλ€
3) νμ΄ν(-)μ URIκ°λ μ±μ λμ΄λλ° μ¬μ©
4) λ°μ€(_)μ URIμ μ¬μ©νμ§ μμ΅λλ€.
5) URI κ²½λ‘λ μλ¬Έμκ° μ ν©ν©λλ€
λμλ¬Έμμ λ°λΌ λ€λ₯Έ 리μμ€λ‘ μΈμνκ² λκΈ° λλ¬Έμ΄λ€. RFC 3986(URI λ¬Έλ² νμ)μ URI μ€ν€λ§μ νΈμ€νΈλ₯Ό μ μΈνκ³ λ λμλ¬Έμλ₯Ό ꡬλ³νλλ‘ κ·μ νκ³ μλ€.
6) νμΌ νμ₯μλ URIμ ν¬ν¨μν€μ§ μμ΅λλ€.
7) 리μμ€ κ°μλ μ°κ΄ κ΄κ³κ° μλ κ²½μ°
π /리μμ€λͺ
/리μμ€ ID/κ΄κ³κ° μλ λ€λ₯Έ 리μμ€λͺ