[HTTP] REST / GET / POST λ°©μ
TTPλ©μλλ₯Ό μ¬μ©ν΄μ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°λ λ°©μμ νν REST api λ₯Ό μ΄μ©ν λ°μ΄ν° κ΅ν λ°©μμ΄λΌκ³ λ§νλ€. νλ λ€νΈμν¬ μμ₯μμ κ°μ₯ λ§μ ν¬μ μ μ°¨μ§νκ³ μλ λ°©μμ΄κΈ° λλ¬Έμ ν΄λΉ λ°©μμ μ μκ³ μμ΄μΌ νλ€.
REST λ?
REST λ Representational State Transfer μ μ€μλ§μ΄λ€. ν΄μνλ©΄ "ννμ ν΅ν μν μ λ¬" μ λλ‘ λ³Ό μ μλ€. RESTλ₯Ό μ μ€λͺ ν μ μλ ν΄μμ "νν(μμ, κ²°κ³Όμ ννλ°©μ)μ λ°λ₯Έ μνμ μ λ¬" μ΄ λ μ νν κ² κ°λ€.
HTTP URI(Uniform Resource Identifier)λ₯Ό ν΅ν΄ μμμ λͺ
μ(μμ) νκ³ , HTTP Method(POST, GET, PUT, DELETE)λ₯Ό ν΅ν΄ ν΄λΉ μμμ λν CRUD Operation(μνμ μ λ¬) μ μ μ©νλ κ²μ μλ―Ένλ€. request κ° μλ£λλ©΄ μλ²λ νΉμ representation(ννλ°©μ) μλ₯Ό λ€μ΄, json, xml λ±μ ν΅ν΄ responseλ₯Ό 보λ΄μ€λ€.
https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html
apiλ?
api λ application programming interface μ μ€μλ§μ΄λ€. μ¦ μμ©νλ‘κ·Έλ¨μμ μ¬μ©ν μ μκ² μ΄μ체μ μμ μ 곡νλ μΈν°νμ΄μ€λ₯Ό λ»νλ€. μ΄μ체μ λΌκ³ νλ©΄ λκ° κ±°μ°½ν κ°λ μ΄ λλ κ² κ°μ, μ‘°κΈ λ κ°λ³κ² μ¬κΈΈ μ μκ² μ€λͺ νμλ©΄, κ·Έλ₯ λ΄κ° λ§λ μ½λλ₯Ό λ€λ₯Έ νλ‘κ·Έλ¨μμ μ¬μ©ν μ μκ² λ§λ€μ΄λμ μμ‘μ΄ κ°μ κ°λ μ΄λ€.
https://apis.map.kakao.com/web/guide/
μ μΉμ¬μ΄νΈλ₯Ό 보면 μΉ΄μΉ΄μ€λ§΅ apiλΌλ μΉμ¬μ΄νΈμ΄λ€. μΉ΄μΉ΄μ€κ° λ§λ€μ΄λμ λ§΅ νλ‘κ·Έλ¨μ λ€λ₯Έ μμ©νλ‘κ·Έλ¨μμ μ¬μ©ν μ μλλ‘ λμ λμ Έμ€ κ²μ΄λ€. νλ‘κ·Έλλ¨Έλ μ΄ apiλ₯Ό μ΄μ©ν΄μ λ΄ μμ©νλ‘κ·Έλ¨μ μΉ΄μΉ΄μ€λ§΅μ ꡬνν μ μλ€.
REST apiλ μ΄ apiκ° REST ν νμμ λ°λ₯΄κ³ μλ κ²μ λ§νλ€. μ¦ HTTP URI λ₯Ό ν΅ν΄ μμμ λͺ μνκ³ , HTTP λ©μλλ₯Ό μ΄μ©ν΄μ μμ λ°μ΄ν°λ₯Ό κ΅ννλ νμμ λ°λ₯΄λ apiλ₯Ό REST apiλΌκ³ λΆλ₯Έλ€.
HTTP λ©μλ
μμμ REST api λ°©μμ HTTP λ©μλλ₯Ό ν΅ν΄ μμμ κ΅ννλ€κ³ κΈ°μ νλ€. HTTP λ©μλμλ GET, POST, PUT, DELETE λ€ κ°μ§ λ°©μμ΄ μλλ°, κ° λ©μλμ νΉμ±μ μ μκ³ κ΅¬λΆν΄μ μ¬μ©νλ κ²μ΄ μ’λ€. κ·Έλ μ§ μμΌλ©΄ λ΄κ° μνλ νλ‘κ·Έλ¨ λ°©μκ³Ό λ€λ₯Έ κ²°κ³Όλ₯Ό λ³μ μ μλ€. HTTPλ μ μ°ν νλ‘ν μ½μ΄κΈ° λλ¬Έμ, ν κ°μ§ λ©μλκ° ν κ°μ§ λ°©μμΌλ‘λ§ λμνμ§λ μλλ€. μλ₯Ό λ€μ΄μ POST λ°©μμ λ°μ΄ν°λ₯Ό λ£μ λ μ¬μ©νλ λ©μλμ΄μ§λ§ ν΄λΉ λ°©μμΌλ‘ λ°μ΄ν°λ₯Ό μ‘°ννλ λ°μ μ¬μ©ν μλ μλ€.
GET / POST
GET λ©μλλ κΈ°λ³Έμ μΌλ‘ μλ²μμ λ°μ΄ν°λ₯Ό λ°μμ€κΈ° μν΄μ μ¬μ©λλ λ©μλμ΄λ€. λ°μ΄ν°λ² μ΄μ€μ SELECT 쿼리문과 κ°μ μν μ νλ€κ³ μκ°νλ©΄ λλ€. POST λ©μλλ μλ²μμ λ°μ΄ν°λ₯Ό μμ νκ±°λ μλ‘ μΆκ°ν λ μ¬μ©νλ λ©μλμ΄λ€.
λμ κ°μ₯ ν° μ°¨μ΄μ μ€ νλκ° λ°μ΄ν°λ₯Ό μ μ‘νλ λ°©μμ΄λ€. GET κ³Ό POST λ©μλ λͺ¨λ λ°μ΄ν°λ₯Ό μλ²λ‘ 보λ΄μΌ νλ€. POSTμ κ²½μ°λ μλ²μ λ°μ΄ν°λ₯Ό λ³κ²½νκ² λκΈ° λλ¬Έμ λΉμ°ν λ°κΏ λ°μ΄ν°λ₯Ό 보λ΄μ£Όμ΄μΌ νμ§λ§, GETμ κ²½μ°μλ?
GET λ©μλ λν λ΄κ° λ°μμ¬ μμμ λͺ
νν μ§μ ν΄μ£Όμ΄μΌ νκΈ° λλ¬Έμ, μμμ κ²½λ‘λ₯Ό μ§μ ν΄μ£Όλ λ°μ΄ν°λ₯Ό 보λ΄μ£Όμ΄μΌ νλ€. μ΄ λ°©μμμ λμ μ°¨μ΄κ° μλλ°, GET λ°©μμ query λ¬Έμ λ°μ΄ν°λ₯Ό λ£μ΄μ URLμ μ§μ μ μΌλ‘ λ°μ΄ν°κ° ν¬ν¨λκ² λλ€.
www.example.com?id=mommoo&pass=1234
μ μ²λΌ URLμ΄ μμ±λκ² λκ³ , μ΄ μΏΌλ¦¬λ¬Έμ΄ ν€λμ ν¬ν¨λμ΄ μλ²λ‘ μ μ‘λλ€.
λ°λ©΄ POSTλ body λ΄λΆμ μ΄ λ°μ΄ν°λ₯Ό λ£μ΄μ 보λΈλ€. body λ΄λΆμ ν΄λΉ λ°μ΄ν°λ₯Ό λ£μ΄μ 보λ΄κΈ° λλ¬Έμ κ²μΌλ‘λ μ΄λ€ λ°μ΄ν°κ° μ μ‘λμλμ§ λ³΄μ΄μ§λ μλλ€.
μ₯λ¨μ
POSTλ 보μμ μΌλ‘ μ°μνλ€?
POSTκ° κ²μΌλ‘ λ°μ΄ν°κ° λ ΈμΆλμ§ μλ νΉμ± λλ¬Έμ, POSTκ° GET보λ€λ 보μμ μΌλ‘ μ°μνλ€κ³ λ§νλλ°, μ¬μ€ μ μλ―Έλ μλ€. urlμ λ ΈμΆλμ§ μκΈ° λλ¬Έμ μ§μ μ μΌλ‘ μλΏμ§ μλ κ² λΏμ΄μ§, μ»΄ν¨ν°λ₯Ό μ‘°κΈλ§ λ€λ£° μ μλ€λ©΄ 보μμ μΌλ‘ ν° μλ―Έκ° μλ€. λλ¬Έμ, POSTλ₯Ό 보μμ μΌλ‘ μ°μνλ€λ μ΄μ λ‘ μ리μ λ§μ§ μκ² μ¬μ©νλ μΌμ μ§μν΄μΌ νλ€κ³ μκ°νλ€.
νμ§λ§ νμ¬ μ μ₯μμ(κ°λ°μ μΈμ μ¬λμ΄) μ€μν λ°μ΄ν°κ° urlμ κ³ μ€λν λ ΈμΆλλ κ² λμ 보μ΄λ©΄ λΉμ°ν κΈ°λΆμ΄ μ μ’μ κ²μ΄λ€. κ°λ°μκ° μ΄κ±΄ μ€μ§μ μΌλ‘ 보μ μ μλ―Έκ° μμ΅λλ€! λΌκ³ μ£Όμ₯ν΄λ μλ―Έκ° μλ€. λλ¬Έμ λ°μ΄ν°λ₯Ό μ‘°ννλ requestλΌ ν΄λ νλΌλ―Έν°λ‘ μ€μν λ°μ΄ν°(κ°μΈμ 보)κ° λμ΄κ°μΌ νλ€λ©΄ POST λ°©μμ μ¬μ©νλ κ²μ΄ μ΅μνμ κ°λ λ μμ κ°λ°μλ‘ λΉμΆ°μ§μ§ μλ λ°©μμ΄λ€. REST μμΉμ μ§ν€λ κ²μ΄ μ°λ¦¬μ λ°₯μ€μ μ§ν€λ κ²λ³΄λ€ μ€μνμ§λ μμ κ²μ΄λ€.
GETμ POSTλ³΄λ€ λΉ λ₯΄λ€.
λΈλΌμ°μ λ GETμΌλ‘ λ°μμ¨ λ°μ΄ν°λ₯Ό μΊμ±νλ€. GETμ URLμ λ΄κ° λ°μμ¬ λ°μ΄ν°λ₯Ό λͺ ννκ² μ μ΄μ£ΌκΈ° λλ¬Έμ, μ νν μΊμ±μ΄ κ°λ₯ν΄, GET λ°©μλ§ μΊμ±μ νλ€. λλ¬Έμ λ€λ₯Έ HTTP λ©μλμ λΉν΄ λ λΉ λ₯΄κ² μλν μ μλ€.
GETμ URL 곡μ κ° νΈλ¦¬νλ€.
GET λ°©μμ URLμ λͺ¨λ μμ κ²½λ‘λ₯Ό λ΄μμ μ μ‘νκΈ° λλ¬Έμ, λ€λ₯Έ μ¬λμκ² url 곡μ λ§μΌλ‘λ ν΄λΉ μμμ 곡μ ν μ μλ€. λ°λ©΄ POST λ°©μμ λ°λ λΆλΆμ λ°μ΄ν°λ₯Ό λ£μ΄μ μλ²μ μ μ‘ν΄μΌ νκΈ° λλ¬Έμ url 곡μ λ§μΌλ‘λ μνλ μμμ 곡μ ν μ μλ€.
POSTλ GETλ³΄λ€ λ§μ μμ λ°μ΄ν°λ₯Ό λ΄μ μ μλ€?
GET λ°©μμ url κΈΈμ΄μ μ νμ΄ μκΈ° λλ¬Έμ λ°μ΄ν° μ νμ΄ μλ€κ³ μλ €μ Έ μλ€. νμ§λ§ μ΄κ±΄ μλ λΈλΌμ°μ μμ μ ννκ³ μλ μ¬νμ΄κ³ μ§κΈμ λλ€μ λ²μ μ λΈλΌμ°μ μ ν΄λΉ μ¬νμ΄ μλ€.
μ΅μ€νλ‘λ¬λ§ url κΈΈμ΄ μ νμ΄ 4000μκ° μλ€κ³ νλ€.
https://uiandwe.tistory.com/1133