216.73.216.25 TODAY : 8,458

์˜จ๋ผ์ธ ๊ฐ•์˜

 > 

PHP - ๊ณ ๊ธ‰

๐Ÿ“š PHP ๊ณ ๊ธ‰ - 4์ฃผ์ฐจ: RESTful API ๊ฐœ๋ฐœ ๊ธฐ์ดˆ - 02 API ์—”๋“œํฌ์ธํŠธ ์„ค๊ณ„

๐Ÿ“š PHP ๊ณ ๊ธ‰ - 4์ฃผ์ฐจ: RESTful API ๊ฐœ๋ฐœ ๊ธฐ์ดˆ - 02 API ์—”๋“œํฌ์ธํŠธ ์„ค๊ณ„

์ฃผ์š” ํ”„๋กœ๊ทธ๋žจ ์ŠคํŽ™

  • ํ‰์ : 10.0
  • ๋ผ์ด์„ ์Šค: free
  • ์šด์˜์ฒด์ œ:
  • ํŒŒ์ผ ํฌ๊ธฐ: 0

ํ”ผ๋“œ๋ฐฑ ๋ฐ ๋‹ค์šด๋กœ๋“œ

  • ์‚ฌ์šฉ์ž ํ‰์ : 10.0
  • ๋‹ค์šด๋กœ๋“œ ์ˆ˜: 1
  • ์กฐํšŒ์ˆ˜: 46

์ œ์กฐ์‚ฌ ๋ฐ ๋“ฑ๋ก ์ •๋ณด

  • ์ œ์ž‘์‚ฌ: LUZENSOFT
  • ๋“ฑ๋ก์ผ: 2025-09-14 14:50:35
  •  

- ์„ค๋ช…

#API #์—”๋“œํฌ์ธํŠธ #์„ค๊ณ„์˜ #์ค‘์š”์„ฑ

uploadImageuploadImage


#API ์—”๋“œํฌ์ธํŠธ ์„ค๊ณ„๋Š” #RESTful API์˜ #์‚ฌ์šฉ์„ฑ, #์œ ์ง€๋ณด์ˆ˜์„ฑ, #ํ™•์žฅ์„ฑ์— ์ง์ ‘์ ์ธ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค. ์ž˜ ์„ค๊ณ„๋œ ์—”๋“œํฌ์ธํŠธ๋Š” #๊ฐœ๋ฐœ์ž๊ฐ€ API๋ฅผ ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ณ  ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋Œ€๋กœ ์ž˜๋ชป ์„ค๊ณ„๋œ ์—”๋“œํฌ์ธํŠธ๋Š” #ํ˜ผ๋ž€์„ ์•ผ๊ธฐํ•˜๊ณ , ๋ถˆํ•„์š”ํ•œ #๋ณต์žก์„ฑ์„ ์ฆ๊ฐ€์‹œ์ผœ #๊ฐœ๋ฐœ ๋น„์šฉ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. #RESTful ์›์น™์„ ๋”ฐ๋ฅด๋Š” ์—”๋“œํฌ์ธํŠธ ์„ค๊ณ„๋Š” API๊ฐ€ ์˜ˆ์ธก ๊ฐ€๋Šฅํ•˜๊ณ  ์ผ๊ด€์„ฑ ์žˆ๊ฒŒ ๋™์ž‘ํ•˜๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.



#์ž์› (Resource) #๊ธฐ๋ฐ˜ #URL #์„ค๊ณ„

uploadImage


#RESTful API์˜ ํ•ต์‹ฌ์€ #์ž์›์ž…๋‹ˆ๋‹ค. ๋ชจ๋“  ์—”๋“œํฌ์ธํŠธ๋Š” ํŠน์ • #์ž์›์„ ๋‚˜ํƒ€๋‚ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ž์› ๊ธฐ๋ฐ˜ URL ์„ค๊ณ„์˜ ์ฃผ์š” ์›์น™์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • #๋ช…์‚ฌ ์‚ฌ์šฉ: URL์€ #๋™์‚ฌ ๋Œ€์‹  #๋ช…์‚ฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž์›์„ ํ‘œํ˜„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, GET /getUsers ๋Œ€์‹  GET /users๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • #์ปฌ๋ ‰์…˜๊ณผ #๋‹จ์ผ ์ž์›: ์ž์› ์ปฌ๋ ‰์…˜์€ #๋ณต์ˆ˜ ๋ช…์‚ฌ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ , ํŠน์ • ๋‹จ์ผ ์ž์›์€ ํ•ด๋‹น ์ปฌ๋ ‰์…˜ ๋’ค์— #ID๋ฅผ ๋ถ™์—ฌ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.

    • ๋ชจ๋“  ์‚ฌ์šฉ์ž ์กฐํšŒ: GET /users

    • ํŠน์ • ์‚ฌ์šฉ์ž ์กฐํšŒ: GET /users/{id}

  • #ํ•˜์œ„ ์ž์›: ํŠน์ • ์ž์›์˜ ํ•˜์œ„์— ์ข…์†๋œ ์ž์›์ด ์žˆ๋‹ค๋ฉด /๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ณ„์ธต์ ์œผ๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค.

    • ํŠน์ • ์‚ฌ์šฉ์ž์˜ ๊ฒŒ์‹œ๋ฌผ ์กฐํšŒ: GET /users/{id}/posts

    • ํŠน์ • ๊ฒŒ์‹œ๋ฌผ์˜ ๋Œ“๊ธ€ ์กฐํšŒ: GET /posts/{id}/comments

  • #๋™์‚ฌ ๋Œ€์‹  #์ฟผ๋ฆฌ_ํŒŒ๋ผ๋ฏธํ„ฐ: ์ž์›์— ๋Œ€ํ•œ ํŠน์ • ํ–‰์œ„๋ฅผ ๋‚˜ํƒ€๋‚ด์•ผ ํ•  ๋•Œ๋Š” URL์— ๋™์‚ฌ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ๋ณด๋‹ค #HTTP ๋ฉ”์„œ๋“œ๋ฅผ ํ™œ์šฉํ•˜๊ฑฐ๋‚˜ #์ฟผ๋ฆฌ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    • ํ™œ์„ฑ ์‚ฌ์šฉ์ž ์กฐํšŒ: GET /users?status=active (๊ถŒ์žฅ)

    • GET /activeUsers (๋น„๊ถŒ์žฅ)

  • #๋ฒ„์ „ ๊ด€๋ฆฌ: API๊ฐ€ ๋ฐœ์ „ํ•จ์— ๋”ฐ๋ผ ํ•˜์œ„ ํ˜ธํ™˜์„ฑ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด #๋ฒ„์ „ ๊ด€๋ฆฌ๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. URL์— ๋ฒ„์ „์„ ๋ช…์‹œํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ž…๋‹ˆ๋‹ค.

    • GET /v1/users

    • GET /v2/users



#HTTP #๋ฉ”์„œ๋“œ (Method)์˜ #์ ์ ˆํ•œ #์‚ฌ์šฉ


#HTTP ๋ฉ”์„œ๋“œ๋Š” #CRUD ์ž‘์—…๊ณผ #์ง๊ด€์ ์œผ๋กœ ๋งคํ•‘๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • #GET: ์ž์›์„ #์กฐํšŒํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค (๋ฉฑ๋“ฑ์„ฑ).

    • GET /users (๋ชจ๋“  ์‚ฌ์šฉ์ž ์กฐํšŒ)

    • GET /users/{id} (ํŠน์ • ์‚ฌ์šฉ์ž ์กฐํšŒ)

  • #POST: ์ƒˆ๋กœ์šด #์ž์›์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

    • POST /users (์ƒˆ ์‚ฌ์šฉ์ž ์ƒ์„ฑ)

  • #PUT: ๊ธฐ์กด #์ž์›์„ ์™„์ „ํžˆ #๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค. ์š”์ฒญ ๋ณธ๋ฌธ์— ์ „์ฒด ์ž์› ํ‘œํ˜„์ด ํฌํ•จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค (๋ฉฑ๋“ฑ์„ฑ).

    • PUT /users/{id} (ํŠน์ • ์‚ฌ์šฉ์ž ์ •๋ณด ์ „์ฒด ๊ฐฑ์‹ )

  • #PATCH: ๊ธฐ์กด #์ž์›์˜ ์ผ๋ถ€๋ฅผ #๋ถ€๋ถ„์ ์œผ๋กœ ๊ฐฑ์‹ ํ•ฉ๋‹ˆ๋‹ค.

    • PATCH /users/{id} (ํŠน์ • ์‚ฌ์šฉ์ž ๋น„๋ฐ€๋ฒˆํ˜ธ๋งŒ ๊ฐฑ์‹ )

  • #DELETE: ํŠน์ • #์ž์›์„ #์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค (๋ฉฑ๋“ฑ์„ฑ).

    • DELETE /users/{id} (ํŠน์ • ์‚ฌ์šฉ์ž ์‚ญ์ œ)



#HTTP #์‘๋‹ต #์ƒํƒœ_์ฝ”๋“œ (Status Code) #ํ™œ์šฉ


#API ์‘๋‹ต ์‹œ ์ ์ ˆํ•œ #HTTP ์ƒํƒœ ์ฝ”๋“œ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒƒ์€ #ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์˜ ์‘๋‹ต์„ ์ •ํ™•ํ•˜๊ฒŒ ์ดํ•ดํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ž…๋‹ˆ๋‹ค.

  • #2xx (์„ฑ๊ณต)

    • 200 OK: ์š”์ฒญ ์„ฑ๊ณต.

    • 201 Created: ์ž์› ์ƒ์„ฑ ์„ฑ๊ณต.

    • 204 No Content: ์„ฑ๊ณตํ–ˆ์ง€๋งŒ ์‘๋‹ต ๋ณธ๋ฌธ์— ๋ณด๋‚ผ ๋‚ด์šฉ์ด ์—†์Œ (DELETE ์š”์ฒญ ๋“ฑ).

  • #4xx (ํด๋ผ์ด์–ธํŠธ ์˜ค๋ฅ˜)

    • 400 Bad Request: ์ž˜๋ชป๋œ ์š”์ฒญ.

    • 401 Unauthorized: ์ธ์ฆ ์‹คํŒจ (๋กœ๊ทธ์ธ ํ•„์š”).

    • 403 Forbidden: ๊ถŒํ•œ ์—†์Œ (์ ‘๊ทผ ๊ฑฐ๋ถ€).

    • 404 Not Found: ์š”์ฒญํ•œ ์ž์›์„ ์ฐพ์„ ์ˆ˜ ์—†์Œ.

    • 405 Method Not Allowed: ํ—ˆ์šฉ๋˜์ง€ ์•Š์€ HTTP ๋ฉ”์„œ๋“œ.

  • #5xx (์„œ๋ฒ„ ์˜ค๋ฅ˜)

    • 500 Internal Server Error: ์„œ๋ฒ„ ๋‚ด๋ถ€ ์˜ค๋ฅ˜.

#RESTful API ์„ค๊ณ„ ์‹œ ์ด๋Ÿฌํ•œ ์›์น™๋“ค์„ ๋”ฐ๋ฅด๋ฉด #์˜ˆ์ธก ๊ฐ€๋Šฅํ•˜๊ณ  #์œ ์ง€๋ณด์ˆ˜ํ•˜๊ธฐ ์‰ฌ์šด API๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


PHP ๊ณ ๊ธ‰ RESTful API ๊ฐœ๋ฐœ ๊ธฐ์ดˆ API ์—”๋“œํฌ์ธํŠธ ์„ค๊ณ„ ์ค‘์š”์„ฑ ์ž์› ๊ธฐ๋ฐ˜ URL HTTP ๋ฉ”์„œ๋“œ ์ ์ ˆํ•œ ์‚ฌ์šฉ HTTP ์‘๋‹ต ์ƒํƒœ ์ฝ”๋“œ ํ™œ์šฉ



์†๋„, ์•ˆ์ •์„ฑ ํ™•์‹ค. ๋Š๊น€์—†์ด ๋น ๋ฅธ VPN. ๊ณ ํ’ˆ์งˆ ๋ธŒ์ดํ”ผ์—” ๋ฌด๋ฃŒ์ฒดํ—˜!

https://xn--299ao67b9qbmsf04c.net/