yeon's blog

[HTTP ์›น ๊ธฐ๋ณธ ์ง€์‹] HTTP ๋ฉ”์„œ๋“œ - ๋ฉ”์„œ๋“œ ์ข…๋ฅ˜ (GET, POST, PUT, PATCH, DELETE) ๋ณธ๋ฌธ

HTTP

[HTTP ์›น ๊ธฐ๋ณธ ์ง€์‹] HTTP ๋ฉ”์„œ๋“œ - ๋ฉ”์„œ๋“œ ์ข…๋ฅ˜ (GET, POST, PUT, PATCH, DELETE)

yeonii 2023. 12. 3. 14:46

๐ŸŒฑ HTTP Method - ๋ฉ”์„œ๋“œ ์ข…๋ฅ˜

HTTP  ์ฃผ์š” ๋ฉ”์„œ๋“œ ์ข…๋ฅ˜

  • GET : ๋ฆฌ์†Œ์Šค๋ฅผ ์กฐํšŒ
  • POST : ์š”์ฒญ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์•„์„œ ์ฒ˜๋ฆฌ
  • PUT : ๋ฆฌ์†Œ์Šค๋ฅผ ๋Œ€์ฒด, ํ•ด๋‹น ๋ฆฌ์†Œ์Šค๊ฐ€ ์—†์œผ๋ฉด ์ƒ์„ฑ
  • PATCH : ๋ฆฌ์†Œ์Šค ๋ถ€๋ถ„ ๋ณ€๊ฒฝ
  • DELETE : ๋ฆฌ์†Œ์Šค ์‚ญ์ œ

HTTP  ๊ธฐํƒ€ ๋ฉ”์„œ๋“œ ์ข…๋ฅ˜

  • HEAD : GET๊ณผ ๋™์ผํ•˜์ง€๋งŒ ๋ฉ”์‹œ์ง€ ๋ถ€๋ถ„์„ ์ œ์™ธํ•˜๊ณ  ์ƒํƒœ ์ค„๊ณผ ํ—ค๋”๋งŒ ๋ฐ˜ํ™˜
  • OPTIONS : ๋Œ€์ƒ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ํ†ต์‹  ๊ฐ€๋Šฅ ์˜ต์…˜(๋ฉ”์„œ๋“œ)๋ฅผ ์„ค๋ช… (์ฃผ๋กœ CORS์—์„œ ์‚ฌ์šฉ)
  • CONNECT: ๋Œ€์ƒ ์ž์›์œผ๋กœ ์‹๋ณ„๋˜๋Š” ์„œ๋ฒ„์— ๋Œ€ํ•œ ํ„ฐ๋„ ์„ค์ •
  • TRACE : ๋Œ€์ƒ ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ๊ฒฝ๋กœ๋ฅผ ๋”ฐ๋ผ ๋ฉ”์‹œ์ง€ ๋ฃจํ”„๋ฐฑ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰
  • * CONNECT, TRACE๋Š” ๊ฑฐ์˜ ์‚ฌ์šฉํ•˜์ง€ X

 

 

1. GET: ๋ฆฌ์†Œ์Šค ์กฐํšŒ

  • ํŠน์ •ํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ๊ฐ€์ ธ์˜ค๋„๋ก ์š”์ฒญํ•œ๋‹ค.
  • GET ์š”์ฒญ์€ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜ฌ ๋•Œ๋งŒ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
  • ์„œ๋ฒ„์— ์ „๋‹ฌํ•˜๊ณ  ์‹ถ์€ ๋ฐ์ดํ„ฐ๋Š” query string์„ ํ†ตํ•ด ์ „๋‹ฌ
  • GET ์š”์ฒญ์— ๋ฉ”์‹œ์ง€ ๋ฐ”๋””์— ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ด์„ ์ˆ˜๋„ ์žˆ์ง€๋งŒ ์ด๋Š” ๊ถŒ์žฅํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์‚ฌ์šฉํ•˜์ง€ ๋ง์ž.
  • ์บ์‹œ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ๋ฉฑ๋“ฑํ•˜๋‹ค.

 

2. POST: ์š”์ฒญ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ, ์ฃผ๋กœ ๋“ฑ๋ก์— ์‚ฌ์šฉ

  • ์š”์ฒญ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ๋ฅผ ๋‹ด๋‹นํ•œ๋‹ค.
  • ๋ฉ”์‹œ์ง€ ๋ฐ”๋””๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„๋กœ ๋ฐ์ดํ„ฐ ์ „๋‹ฌํ•œ๋‹ค.
  • ์„œ๋ฒ„๋Š” ๋„˜์–ด์˜จ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•œ๋‹ค.(๋ฐ”๋””๋ฅผ ํ†ตํ•ด ๋“ค์–ด์˜จ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ชจ๋“  ๊ธฐ๋Šฅ ์ˆ˜ํ–‰)
    • ๋ฉ”์‹œ์ง€ ๋ฐ”๋”” ํƒ€์ž…(html, json..)์€ Content-Type์— ๋‚˜ํƒ€๋‚ธ๋‹ค.
  • ๋ฉฑ๋“ฑ ์•„๋‹ˆ๋‹ค.
    • ๊ฒฐ์ œ๋ฅผ ์ƒ๊ฐํ•ด๋ณด๋ฉด ํ•œ๋ฒˆ ํ˜ธ์ถœํ•˜๊ณ  ๋‘๋ฒˆ ํ˜ธ์ถœํ•˜๋Š” ๊ฒƒ์€ ๋‹ค๋ฅด๋‹ค.
  • ์ฃผ๋กœ ์ „๋‹ฌ๋œ ๋ฐ์ดํ„ฐ๋กœ ์‹ ๊ทœ ๋ฆฌ์†Œ์Šค ๋“ฑ๋กํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝ๋œ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ฐ”๊ฟ€ ๋•Œ ๋งŽ์ด ์ด์šฉํ•œ๋‹ค.

 

POST ๊ธฐ๋Šฅ

  1. ์ƒˆ ๋ฆฌ์†Œ์Šค ์ƒ์„ฑ(๋“ฑ๋ก)
    • POST๋Š” ๋ฆฌ์†Œ์Šค์˜ URI๋ฅผ ๋ชจ๋ฅด์ง€๋งŒ ์„œ๋ฒ„๊ฐ€ ์ƒˆ๋กœ ๋“ฑ๋ก๋œ ๋ฆฌ์†Œ์Šค URI๋ฅผ ์ƒ์„ฑํ•ด์ค€๋‹ค.
    • ์ด๋ ‡๊ฒŒ ์„œ๋ฒ„๊ฐ€ ๋ฆฌ์†Œ์Šค URI๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ์ปฌ๋ ‰์…˜(Collection)์ด๋ผ๊ณ  ํ•˜๋ฉฐ, ์ปฌ๋ ˆ์…˜์€ /members๋ฅผ ๋งํ•œ๋‹ค.
  2. ์š”์ฒญ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌโœจ
    • ํ”„๋กœ์„ธ์Šค์˜ ์ƒํƒœ ๋ณ€๊ฒฝํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ -> ์˜ˆ) ๊ฒฐ์ œ์™„๋ฃŒ -> ๋ฐฐ๋‹ฌ์‹œ์ž‘ -> ๋ฐฐ๋‹ฌ์™„๋ฃŒ
    • ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ฆฌ์†Œ์Šค๋งŒ ๊ฐ€์ง€๊ณ  URI๋ฅผ ์„ค๊ณ„ํ•˜๋Š” ๊ฒƒ์ด ์ด์„ฑ์ ์ด์ง€๋งŒ, ์–ด์ฉ” ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ์ปจํŠธ๋กค URI๋กœ ์„ค๊ณ„ (์–ด์ฉ” ์ˆ˜ ์—†์ด ๋™์‚ฌ๊ฐ€ ๋“ค์–ด๊ฐˆ ์ˆ˜๋„ ์žˆ์Œ)
    • ์˜ˆ) POST/orders/{orderId}/start-delivery (์ปจํŠธ๋กค URI)
  3. ๋‹ค๋ฅธ ๋ฉ”์„œ๋“œ๋กœ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์• ๋งคํ•œ ๊ฒฝ์šฐ
    • ajax๋ฅผ ํ†ตํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•  ๋•Œ ๋ฉ”์‹œ์ง€ ๋ฐ”๋””์— ๋‹ด๊ณ  ์‹ถ์–ด์„œ POST๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
    • ํ•˜์ง€๋งŒ ์กฐํšŒํ•  ๋•Œ๋Š” ์™ ๋งŒํ•˜๋ฉด GET์„ ์‚ฌ์šฉํ•˜์ž.
      • ๊ทธ ์ด์œ ๋Š” ์บ์‹ฑ!

 

3. PUT: ๋ฆฌ์†Œ์Šค ๋Œ€์ฒด, ํ•ด๋‹น ๋ฆฌ์†Œ์Šค๊ฐ€ ์—†์œผ๋ฉด ์ƒ์„ฑ

1. ๋ฆฌ์†Œ์Šค๊ฐ€ ์žˆ์„ ๊ฒฝ์šฐ -> ๋ฎ์–ด์”€

 

2. ๋ฆฌ์†Œ์Šค๊ฐ€ ์—†์„ ๊ฒฝ์šฐ -> ์ƒ์„ฑ

 

  • ๋ฆฌ์†Œ์Šค๊ฐ€ ์—†์œผ๋ฉด ์ƒˆ๋กœ์šด ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ๋ฆฌ์†Œ์Šค๊ฐ€ ์žˆ์œผ๋ฉด ๋ฆฌ์†Œ์Šค๋ฅผ ์™„์ „ํžˆ ๋Œ€์ฒดํ•œ๋‹ค. (๋ฎ์–ด๋ฒ„๋ฆฐ๋‹ค.)
  • POST์™€์˜ ์œ ์ผํ•œ ์ฐจ์ด์ ์€ PUT์€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฆฌ์†Œ์Šค์˜ ์œ„์น˜๋ฅผ ์•Œ๊ณ  URI๋ฅผ ๋”ฑ ์ง€์ •ํ•œ๋‹ค. ex) /members/100
    • ์ด์ฒ˜๋Ÿผ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฆฌ์†Œ์Šค URI๋ฅผ ์•Œ๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์„ ์Šคํ† ์–ด(Store)๋ผ๊ณ  ํ•˜๋ฉฐ, ์Šคํ† ์–ด๋Š” /members๊ฐ€ ๋œ๋‹ค.
  • ํ•˜์ง€๋งŒ POST๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฆฌ์†Œ์Šค์˜ ์œ„์น˜๋ฅผ ์•Œ์ง€ ๋ชปํ•˜๊ณ  ์ž๋™์œผ๋กœ ๋งŒ๋“ค์–ด์ค€๋‹ค. ex) /members
  • ๋ฉฑ๋“ฑํ•˜๋‹ค.
PUT /members/100 HTTP/1.1
Host: example.com
Content-type: application/json

{
      "name": "minsu",
      "age": 20
}

 

โ— ์ž ๊น !

๋ฆฌ์†Œ์Šค๋ฅผ ์™„์ „ํžˆ ๋Œ€์ฒดํ•œ๋‹ค๋Š”๊ฒŒ ๋ฌด์Šจ ๋ง์ผ๊นŒ?

๋งŒ์•ฝ ๊ธฐ์กด ๋ฐ์ดํ„ฐ๊ฐ€ ์•„๋ž˜์™€ ๊ฐ™๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž.

{
      "name": "minsu",
      "age": 20
}

์—ฌ๊ธฐ์„œ PUT ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด์„œ age๋งŒ 30์œผ๋กœ ๋ณ€๊ฒฝํ•œ๋‹ค๋ฉด ์–ด๋–ค ์ผ์ด ๋ฒŒ์–ด์งˆ๊นŒ?

PUT /members/100 HTTP/1.1
Host: example.com
Content-type: application/json

{
      "age": 30
}

→ age๋งŒ ์ˆ˜์ •ํ•˜๋ฉด ๋˜๊ธฐ ๋•Œ๋ฌธ์— json ๋ฐ์ดํ„ฐ๋Š” age๋งŒ ๋„˜๊ฒจ์„œ 30์œผ๋กœ ๋ณ€๊ฒฝํ–ˆ๋‹ค.

๊ทธ๋Ÿฌ๋ฉด PUT์˜ ์™„์ „ํžˆ ๋Œ€์ฒด๋œ๋‹ค๋Š” ํŠน์ง• ๋•Œ๋ฌธ์— name์ด๋ผ๋Š” ํ•„๋“œ๋Š” ์—†์–ด์ง€๊ณ  age๋งŒ ๋‚จ๊ฒŒ๋œ๋‹ค.

 

๋งŒ์•ฝ ๋‚ด๊ฐ€ ํšŒ์›๊ฐ€์ž…์„ ํ•˜๊ณ  ํšŒ์›์ˆ˜์ •์„ ๋‚˜์ด๋งŒ ์ˆ˜์ •ํ•˜๊ณ  ์‹ถ์€๋ฐ PUT ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋ฉด ๋‚˜์˜ ์•„์ด๋””, ๋น„๋ฐ€๋ฒˆํ˜ธ, ์ด๋ฉ”์ผ... ์ด๋Ÿฌํ•œ ์ค‘์š”ํ•œ ์ •๋ณด๋“ค์„ ๋ชจ๋‘ ์žƒ์„ ์ˆ˜ ์žˆ๋‹ค. ๐Ÿ˜จ

 

4. PATCH: ๋ฆฌ์†Œ์Šค ๋ถ€๋ถ„ ๋ณ€๊ฒฝ

๋‚ด๊ฐ€ ์˜๋„ํ•œ๋Œ€๋กœ ๋ฆฌ์†Œ์Šค์˜ ๋ถ€๋ถ„๋งŒ ์ˆ˜์ •๋˜๊ฒŒ ํ•˜๋ ค๋ฉด ๋ฐ”๋กœ PATCH๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.

PATCH /members/100 HTTP/1.1
Host: example.com
Content-type: application/json
{
      "age": 30
}

๊ทธ๋Ÿฌ๋ฉด ์œ„์™€ ๊ฐ™์ด age๋งŒ 30์œผ๋กœ ๋ณ€๊ฒฝํ•ด๋„ ๋ฐ์ดํ„ฐ๋Š” name๊ณผ age ๋ชจ๋‘ ๊ทธ๋Œ€๋กœ ๋‚จ๊ฒŒ๋œ๋‹ค.

  • PATCH๋Š” ๋ฉฑ๋“ฑ์ด ๋˜๋„๋ก ํ•  ์ˆ˜ ์žˆ๊ณ , ๋ฉฑ๋“ฑ์ด ์•ˆ๋˜๊ฒŒ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
  • ์˜ˆ๋ฅผ ๋“ค์–ด๋ณด์ž.
  • ์ฐธ๊ณ : https://www.inflearn.com/questions/110644

{
      "age": 22
}

์ด๊ฒƒ์€ ๋ฉฑ๋“ฑ์ด๋‹ค.

ํ•˜์ง€๋งŒ ์•„๋ž˜๋Š” ๋ฉฑ๋“ฑ์ด ์•„๋‹ˆ๋‹ค.

{
      "age": 22,
      "calc": add,
      "plusNumber": 1
}

์ด๊ฒƒ์€ ๊ณ„์† ๋ฉ”์„œ๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•  ๋•Œ๋งˆ๋‹ค +1 ๋”ํ•˜๋Š” ์ˆ˜ํ–‰์„ ํ•œ๋‹ค๊ณ  ํ–ˆ์„ ๋•Œ age์˜ ๊ฐ’์ด ๋ณ€ํ•œ๋‹ค.

 

5. DELETE: ๋ฆฌ์†Œ์Šค ์‚ญ์ œ

  • ์ง€์ •ํ•œ ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ญ์ œ
  • ๋ฉฑ๋“ฑํ•˜๋‹ค.
DELETE /members/100 HTTP/1.1
Host: example.com

 

์ •๋ฆฌ (POST, PUT, PATCH)

  • POST๋Š” ๋ฆฌ์†Œ์Šค์˜ ์œ„์น˜๋ฅผ ์•Œ์ง€ ๋ชปํ•ด๋„ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ด์ค€๋‹ค.
  • PUT์€ ๋ฆฌ์†Œ์Šค์˜ ์œ„์น˜๋ฅผ ์•Œ๊ณ  ์žˆ๊ณ , ๊ธฐ์กด ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ญ์ œํ•˜๊ณ  ์™„์ „ํžˆ ๋Œ€์ฒดํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ๋Š” PUT์„ ์‚ฌ์šฉํ•˜๋ฉด ์•ˆ๋œ๋‹ค.
  • ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ถ€๋ถ„ ์ˆ˜์ •ํ•˜๋ ค๋ฉด PATCH๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.

 


โ“ Question

1. ๋ฐฐ๋‹ฌ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•  ๋•Œ PATCH๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ๊ฐ€?

https://www.inflearn.com/questions/110170/post-orders-orderid-start-delivery-%EC%A7%88%EB%AC%B8%EC%9E%88%EC%8A%B5%EB%8B%88%EB%8B%A4


๋ฐฐ๋‹ฌ์˜ ์ƒํƒœ๋ฅผ ๋ณ€๊ฒฝํ•˜๋‹ค๋Š” ๊ฒƒ์€ ๋‹จ์ˆœํžˆ ํ•ด๋‹น ๋ฆฌ์†Œ์Šค์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋Š” ์ •๋„๋กœ ๋๋‚˜๋Š”๊ฒŒ, ์•„๋‹ˆ๋ผ ๋‚ด๋ถ€์—์„œ ๋งค์šฐ ํฐ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰๋œ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•ด๋‹น ๋ฆฌ์†Œ์Šค๋งŒ ๋ณ€๊ฒฝํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ๋‚ด๋ถ€ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‹คํ–‰ํ•ด์•ผ ํ•  ๋•Œ๋Š” PATCH ๋ณด๋‹ค๋Š” POST๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

๋‹จ์ˆœํžˆ ํšŒ์› ์ •๋ณด๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ํŠน์ • ๋ฆฌ์†Œ์Šค์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•  ๋•Œ PATCH๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.

 

์ถ”๊ฐ€๋กœ,

POST /orders/{orderId}/delivery/{๋ฐฐ๋‹ฌ ์ƒํƒœ๊ฐ’} ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ์„ค๊ณ„ํ•˜๊ธฐ๊ฐ€ ์ข€ ์• ๋งคํ•œ ์ ์ด ์‹ค๋ฌด์—์„œ๋Š” ๋ฐฐ๋‹ฌ ์ƒํƒœ๊ฐ’์„ ๋‹จ์ˆœํžˆ ๋ฐ”๊พธ๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ๋ฐฐ๋‹ฌ ์ƒํƒœ์— ๋”ฐ๋ฅธ ์ „๋‹ฌ ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ๊ฐ ๋‹ค๋ฅผ ํ™•์œจ์ด ๋งค์šฐ ๋†’๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด์„œ ๋ฐฐ๋‹ฌ์—์„œ ์ „๋‹ฌํ•˜๋Š” ๋ฐ์ดํ„ฐ์™€ ์ทจ์†Œ์—์„œ ์ „๋‹ฌํ•˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ๋งค์šฐ ๋‹ค๋ฅผ ๊ฒƒ์ด๋‹ค.

๋”ฐ๋ผ์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋‹ค๋ฅด๊ฒŒ ์ •์˜๋˜๋Š”๊ฒŒ ๋” ๋‚˜์€ ์„ค๊ณ„์ผ ์ˆ˜ ์žˆ๋‹ค.

 

POST /orders/{orderId}/delivery/๋ฐฐ๋‹ฌ

{๋ฐ์ดํ„ฐA, ๋ฐ์ดํ„ฐB, ๋ฐ์ดํ„ฐC}

POST /orders/{orderId}/delivery/์ทจ์†Œ

{๋ฐ์ดํ„ฐD,๋ฐ์ดํ„ฐE}


 

2. /{id}๊ฐ€ ์˜๋ฏธํ•˜๋Š” ๊ฒƒ์€?

https://www.inflearn.com/questions/517777/id-%EA%B0%80-%EB%AD%98%EA%B9%8C%EC%9A%94

 

path (/members/1)์™€ query (/members?name='david')๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ์‹๋ณ„ํ•˜๊ธฐ ์œ„ํ•ด ํ•จ๊ป˜ ์“ฐ์ธ๋‹ค.

path๋Š” ์ฃผ๋กœ ๊ณ„์ธต ๊ตฌ์กฐ๋กœ ๋œ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๊ณ , query๋Š” ์ฃผ๋กœ ๋น„๊ณ„์ธต ๊ตฌ์กฐ๋กœ ๋œ ์ •๋ณด๋ฅผ ํฌํ•จํ•œ๋‹ค.

 

https://velog.io/@jcinsh/Query-string-path-variable

์œ„์˜ ์‚ฌ์ดํŠธ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ์˜ฌ๋ฐ”๋ฅธ URL ์„ค๊ณ„์— ๋Œ€ํ•ด ์•Œ์•„๋ณด์ž.


 

3. ํšŒ์› ์ •๋ณด๋ฅผ ์ˆ˜์ •ํ•  ๋•Œ, PATCH๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ณ€๊ฒฝ๋˜๋Š” ํ•„๋“œ๊ฐ€ ๋ฌด์—‡์ด๋ƒ์— ๋”ฐ๋ผ ์ฝ”๋“œ๋ฅผ ๋‹ค ๋”ฐ๋กœ ์ž‘์„ฑํ•ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ค‘๋ณต๋˜๋Š” ์ฝ”๋“œ๊ฐ€ ๋งŽ์•„์ง„๋‹ค. ๊ทธ๋ž˜์„œ PUT์œผ๋กœ ์ „์ฒด๋ฅผ ๋ฎ์–ด์“ฐ๊ฒŒ๋” ํ–ˆ๋”๋‹ˆ ํ•˜๋‚˜์˜ ์ •๋ณด๋งŒ ๋ณ€๊ฒฝํ•ด๋„ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด์•ผํ•˜๋Š” ๋น„ํšจ์œจ์„ฑ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€๋‹ค. ๋งŒ์•ฝ์— PATCH๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด, ์–ด๋–ค ์‹์œผ๋กœ ๊ตฌํ˜„ํ•ด์•ผ ํšจ์œจ์ ์ธ ์ฝ”๋“œ๋ฅผ ์งค ์ˆ˜ ์žˆ์„๊นŒ?

https://www.inflearn.com/questions/117477/put-patch%EC%97%90-%EB%8C%80%ED%95%9C-%EC%A7%88%EB%AC%B8%EC%9E%85%EB%8B%88%EB%8B%A4

 

update ์ฟผ๋ฆฌ๋ฅผ ๋™์  ์ฟผ๋ฆฌ๊ฐ€ ๋˜๋„๋ก ๊ตฌ์„ฑํ•˜์‹œ๋ฉด ๋œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด ํด๋ผ์ด์–ธํŠธ์—์„œ๋Š” ๋ณ€๊ฒฝ๋œ ๊ฐ’๋งŒ ์„œ๋ฒ„์— ๋„˜๊ธฐ๊ณ , ์„œ๋ฒ„์—์„œ๋Š” ํ•„๋“œ์— ๊ฐ’์ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋Š” update set ์กฐ๊ฑด์œผ๋กœ ์ถ”๊ฐ€ํ•˜๊ณ , ๊ฐ’์ด null์ธ ๊ฒฝ์šฐ์—๋Š” update set ์กฐ๊ฑด์—์„œ ์ œ์™ธํ•˜๋Š” ์‹์œผ๋กœ ๋งŒ๋“ค๋ฉด ๋œ๋‹ค.

(๋™์  ์ฟผ๋ฆฌ์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•ด๋ณด์ž!!!)


 

4. POST, PUT ๋ชจ๋‘ ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ๋‘˜์˜ ์ฐจ์ด์ ์€ ๋ฌด์—‡์ธ๊ฐ€?

https://www.inflearn.com/questions/525579/post%EC%99%80-put

 

POST๋Š” ๋ฆฌ์†Œ์Šค์˜ ์ƒ์„ฑ์„, PUT์€ ๋ฆฌ์†Œ์Šค์˜ ๋Œ€์ฒด(replace)๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

 

๊ฐ€๋ น, POST๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋‚ผ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ์šด ๋ฆฌ์†Œ์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ์ƒ์„ฑํ•œ ๋ฆฌ์†Œ์Šค์˜ ์•„์ด๋””๋ฅผ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๊ทธ๋ž˜์„œ ๊ฐ™์€ ์š”์ฒญ์„ ๋ฐ˜๋ณตํ•˜๋ฉด ๋ฆฌ์†Œ์Šค ์•„์ด๋””๊ฐ€ ์ƒˆ๋กญ๊ฒŒ ๋ฐ”๋€๋‹ˆ๋‹ค.

๋ฐ˜๋ฉด PUT์€ ๋ฆฌ์†Œ์Šค์˜ ๋Œ€์ฒด์ด๊ธฐ์—, ์ฒ˜์Œ ๋ฆฌ์†Œ์Šค๊ฐ€ ์—†๋‹ค๋ฉด ์ƒˆ๋กœ ์ƒ์„ฑํ•œ ๋ฆฌ์†Œ์Šค ์•„์ด๋””๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ , ์ดํ›„์— ๊ณ„์† ๊ฐ™์€ ์š”์ฒญ์„ ๋ณด๋‚ด๋ฉด ์ฒ˜์Œ ์ƒ์„ฑํ–ˆ๋˜ ๋ฆฌ์†Œ์Šค์˜ ์•„์ด๋””๋งŒ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.