π API URI μ€κ³
β API URI μ€κ³ μμ
μꡬμ¬ν : νμ μ 보 κ΄λ¦¬ APIλ₯Ό λ§λ€μ΄λΌ.
- νμ λͺ©λ‘ μ‘°ν /read-member-list
- νμ μ‘°ν /read-member-by-id
- νμ λ±λ‘ /create-member
- νμ μμ /update-member
- νμ μμ /delete-member
→ μ’μ URI μ€κ³μΌκΉ?
β 리μμ€μ νμλ₯Ό λΆλ¦¬
- λ¨Όμ 리μμ€λ₯Ό μλ³νλ κ²μ΄ κ°μ₯ μ€μνλ€.
- 리μμ€λ λͺ μ¬, νμλ λμ¬
- νμμ΄λΌλ κ°λ μμ²΄κ° λ¦¬μμ€μ΄λ©° λ±λ‘νκ³ , μμ νκ³ , μ‘°ννλ κ²μ λͺ¨λ λ°°μ νλ€.
β 리μμ€ μλ³, URI κ³μΈ΅ ꡬ쑰 νμ© μμ
- νμ λͺ©λ‘ μ‘°ν /members
- νμ μ‘°ν /members/{id}
- νμ λ±λ‘ /members/{id}
- νμ μμ /members/{id}
- νμ μμ /members/{id}
κ³μΈ΅ ꡬ쑰μ μμλ₯Ό 컬λ μ μΌλ‘ λ³΄κ³ λ³΅μλ¨μ΄ μ¬μ© κΆμ₯ (e.g. member -> members)
URIλ₯Ό 리μμ€λ₯Ό μλ³ν΄μ μ μ€κ³νμΌλ νμλ₯Ό ꡬλΆν νμκ° μμ → HTTP λ©μλ νμ©
π HTTP μ£Όμ λ©μλ μ’ λ₯
β GET
- 리μμ€λ₯Ό μ‘°νν λ μ¬μ©
- μλ²μ μ λ¬νκ³ μΆμ λ°μ΄ν°λ query(쿼리 νλΌλ―Έν°, 쿼리 μ€νΈλ§μ ν΅ν΄ μ λ¬)
- λ©μΈμ§ λ°λμλ λ°μ΄ν°λ₯Ό μ λ¬ν μ μμ§λ§, μ§μνμ§ μλ κ³³μ΄ λ§μμ κΆμ₯X
β POST
- λ©μΈμ§ λ°λλ₯Ό ν΅ν΄ μλ²λ‘ μμ² λ°μ΄ν° μ λ¬
- μλ²λ μμ² λ°μ΄ν°λ₯Ό μ²λ¦¬
- μ£Όλ‘ μ λ¬λ λ°μ΄ν°λ‘ μ κ· λ¦¬μμ€ λ±λ‘, νλ‘μΈμ€ μ²λ¦¬μ μ¬μ©
- μ κ· λ¦¬μμ€λ₯Ό μμ²νλ κ²½μ° μλ΅ λ©μΈμ§μ 201 Created μ½λλ₯Ό μ¬μ©νλ©΄ 리μμ€κ° μμ±λ κ²½λ‘λ₯Ό 보λ΄μ€
- ν΄λΌμ΄μΈνΈλ 리μμ€μ URI μ£Όμλ₯Ό λͺ¨λ₯΄κ³ μμ²μ΄ λ°μνλ©΄ μλ²μμ URIλ₯Ό μ§μ ν΄μ€
π» μμ² λ°μ΄ν° μ²λ¦¬ μμ (μλ²μ λ³ν λ°μ)
- HTML μμμ μ
λ ₯λ νλμ κ°μ λ°μ΄ν° λΈλ‘μ λ°μ΄ν° μ²λ¦¬ νλ‘μΈμ€μ μ 곡
- e.g. HTML FORMμ μ λ ₯ν μ λ³΄λ‘ νμκ°μ , μ£Όλ¬Έ λ±μμ μ¬μ©
- κ²μν, λΈλ‘κ·Έ λ± λ©μΈμ§ κ²μ
- e.g. κ²μν κΈμ°κΈ°, λκΈ λ¬κΈ°
- μλ²κ° μμ§ μλ³νμ§ μμ μ 리μμ€ μμ±
- e.g. μ κ· μ£Όλ¬Έ μμ±
- κΈ°μ‘΄ μμμ λ°μ΄ν° μΆκ°
- e.g. ν λ¬Έμ λμ λ΄μ© μΆκ°
POSTλ νμκ° λ°λ‘ μ ν΄μ§ κ²μ΄ μμΌλ―λ‘ μμ² λ°μ΄ν°λ₯Ό μ΄λ»κ² μ²λ¦¬ν μ§ λ¦¬μμ€λ§λ€ λ°λ‘ μ ν΄μΌ νλ€.
β PUT
- 리μμ€κ° μ‘΄μ¬νλ©΄ μμ ν λ체, μμΌλ©΄ μμ±
- ν΄λΌμ΄μΈνΈκ° 리μμ€ μμΉλ₯Ό μκ³ URIλ₯Ό μ§μ ν¨ (POSTμμ μ°¨μ΄)
- 리μμ€λ₯Ό μμ ν λ체νκΈ° λλ¬Έμ μλ²μ μ μ₯λ 리μμ€ νλμ μμ€μ΄ λ°μν μ μμ
β Patch
- PUTκ³Ό λ¬λ¦¬ 리μμ€μ νλλ₯Ό λΆλΆμ μΌλ‘ λ³κ²½
β Delete
- μ§μ ν μμΉμ 리μμ€ μ κ±°
π HTTP λ©μλ μμ±
β μμ (Safe Methods)
- νΈμΆν΄λ 리μμ€λ₯Ό λ³κ²½νμ§ μλλ€.
- GET, HEADλ μμ ν λ©μλ, κ°μ λ³κ²½νλ λ©μλμΈ POST, PUT, DELETEλ μμ ν λ©μλκ° μλ
β λ©±λ±(Idempotent Methods)
- λͺ λ² νΈμΆνλ κ²°κ³Όκ° λκ°λ€.
- λ©±λ± λ©μλ
- GET : ν λ² μ‘°ννλ , λ λ² μ‘°ννλ κ°μ κ²°κ³Όκ° μ‘°νλλ€.
- PUT : κ²°κ³Όλ₯Ό λ체νλ€. λ°λΌμ κ°μ μμ²μ μ¬λ¬ λ² ν΄λ μ΅μ’ κ²°κ³Όλ κ°λ€.
- DELETE : κ²°κ³Όλ₯Ό μμ νλ€. κ°μ μμ²μ μ¬λ¬λ² ν΄λ μμ λ κ²°κ³Όλ κ°λ€.
- POSTλ λ©±λ±μ΄ μλ, λλ² νΈμΆνλ©΄ κ°μ κ²°μ κ° μ€λ³΅ν΄μ λ°μν μ μλ€.
- νμ© > ν΄λΌμ΄μΈνΈκ° κ°μ μμ²μ λ€μ ν΄λ λλκ°? νλ¨ κΈ°μ€, μλ 볡ꡬ 맀컀λμ¦
β μΊμ κ°λ₯(Cacheable Methods)
- μλ΅ κ²°κ³Ό 리μμ€λ₯Ό μΊμν΄μ μ¬μ©ν μ μλ λ©μλ
- GET, HEAD, POST, PATCH μΊμ κ°λ₯
- μ€μ λ‘λ GET, HEAD μ λλ§ μ¬μ©, POST, PATCHλ ꡬνμ΄ μ½μ§ μμ
κ°μ μλ£
λͺ¨λ κ°λ°μλ₯Ό μν HTTP μΉ κΈ°λ³Έ μ§μ - μΈνλ° | κ°μ
μ€λ¬΄μ κΌ νμν HTTP ν΅μ¬ κΈ°λ₯κ³Ό μ¬λ°λ₯Έ HTTP API μ€κ³ λ°©λ²μ νμ΅ν©λλ€., - κ°μ μκ° | μΈνλ°...
www.inflearn.com
'WEB' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[HTTP] HTTP λ©μλ νμ© (0) | 2022.03.13 |
---|---|
[HTTP] HTTP κΈ°λ³Έ κ°λ κ³Ό νΉμ§ (0) | 2022.03.13 |
[HTTP] URIμ μΉ λΈλΌμ°μ μμ² νλ¦ (0) | 2022.03.12 |