๐Ÿ“Œ Order API

Method URL ์„ค๋ช…
GET /api/orders ์ฃผ๋ฌธ ๋ชฉ๋ก ์กฐํšŒ
GET /api/orders/{id} ์ฃผ๋ฌธ ์ƒ์„ธ
POST /api/orders ์ฃผ๋ฌธ ์ƒ์„ฑ
PATCH /api/orders/{id}/cancel ์ฃผ๋ฌธ ์ทจ์†Œ

๐Ÿ“Œ Member API

Method URL ์„ค๋ช…
GET /api/members ํšŒ์› ๋ชฉ๋ก ์กฐํšŒ
POST /api/members ํšŒ์›๋“ฑ๋ก
DELETE /api/members/{id} ํšŒ์›์‚ญ์ œ
PATCH /api/members/{id} ํšŒ์› ์ˆ˜์ •

๐Ÿ“Œ Item API

Method URL ์„ค๋ช…
GET /api/items ๋ชจ๋“  ์ƒํ’ˆ ์กฐํšŒ
GET /api/items/{id} ์ƒํ’ˆ ๋‹จ๊ฑด ์กฐํšŒ
POST /api/items ์ƒํ’ˆ ๋“ฑ๋ก
DELETE /api/items/{id} ์ƒํ’ˆ ์‚ญ์ œ
PATCH /api/items/{id} ์ƒํ’ˆ ์ˆ˜์ •

๐Ÿ“Œ Payment API

Method URL ์„ค๋ช…
GET /api/payments/success ํ† ์Šค ๊ฒฐ์ œ ์„ฑ๊ณต ์ฝœ๋ฐฑ ์ฒ˜๋ฆฌ(๊ฒฐ์ œ ์Šน์ธ/๊ฒ€์ฆ โ†’ ์ฃผ๋ฌธ ์ƒ์„ฑ & ๊ฒฐ์ œ ์ €์žฅ)
POST /api/payments/cancel ๊ฒฐ์ œ ์ทจ์†Œ(์ „์•ก/๋ถ€๋ถ„ ์ทจ์†Œ)
GET /api/payments/fail ํ† ์Šค ๊ฒฐ์ œ ์‹คํŒจ ์ฝœ๋ฐฑ ์ €์žฅ/์‘๋‹ต
GET /payments/view/success ๊ฒฐ์ œ ์„ฑ๊ณต ๊ฒฐ๊ณผ ํ™”๋ฉด ๋ Œ๋”
GET /payments/view/fail ๊ฒฐ์ œ ์‹คํŒจ ์‹œ ํ™”๋ฉด ์ด๋™

์š”์ฒญ/์‘๋‹ต DTO ์ •๋ฆฌ

Method URL ์š”์ฒญ DTO ์‘๋‹ต DTO ์„ค๋ช…
GET /api/orders ์—†์Œ List ์ „์ œ ์ฃผ๋ฌธ ๋ชฉ๋ก์„ ์กฐํšŒ
GET /api/orders/{id} ์—†์Œ OrderResponseDto ์ฃผ๋ฌธ ์ •๋ณด ์ƒ์„ธ ํ™•์ธ
POST /api/orders OrderRequestDto integer ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ฃผ๋ฌธ ์‹œ ์ฃผ๋ฌธ ์ƒ์„ฑ
PATCH /api/orders/{id}/cancel ์—†์Œ string ์ฃผ๋ฌธ ID๋กœ ์ทจ์†Œ
GET /api/members ์—†์Œ List ์ „์ฒด ํšŒ์› ๋ชฉ๋ก์„ ์กฐํšŒ
POST /api/members MemberDto integer ํšŒ์›์ •๋ณด๋ฅผ ์ž…๋ ฅ ๋ฐ›์•„ ์ €์žฅ
PATCH /api/members/{id} MemberUpdateDto string ํšŒ์› ์ •๋ณด๋ฅผ ์ˆ˜์ •
DELETE /api/members/{id} ์—†์Œ string ํšŒ์› ID๋กœ ํšŒ์› ์‚ญ์ œ
GET /api/items ์—†์Œ List ๋“ฑ๋ก๋œ ์ „์ฒด ์ƒํ’ˆ๋ชฉ๋ก์„ ์กฐํšŒ
GET /api/items/{id} ์—†์Œ BookDto ํ•˜๋‚˜์˜ ์ฃผ๋ฌธ ๋ชฉ๋ก๋งŒ ์กฐํšŒ
POST /api/items BookDto integer ์ƒํ’ˆ์ •๋ณด๋ฅผ ์ž…๋ ฅ ๋ฐ›์•„ ์ €์žฅ
DELETE /api/items/{id} ์—†์Œ string ์ƒํ’ˆ ID๋กœ ์ƒํ’ˆ์„ ์‚ญ์ œ
PATCH /api/items/{id} BookDto string ์ƒํ’ˆ์ •๋ณด๋ฅผ ์ˆ˜์ •

Toss Payments ๊ฒฐ์ œ API ๋ช…์„ธ

Method URL ์š”์ฒญ ํŒŒ๋ผ๋ฏธํ„ฐ ์‘๋‹ต ์„ค๋ช…
GET /api/payments/success paymentKey(String), orderId(String), amount(Long), memberId(Long), itemId(Long), count(Integer) 200 OK (JSON or Redirect) Toss ๊ฒฐ์ œ ์„ฑ๊ณต ํ›„ ํ”„๋ก ํŠธ์—์„œ ํ˜ธ์ถœ. ์„œ๋ฒ„๊ฐ€ Toss API๋กœ ๊ฒฐ์ œ ๊ฒ€์ฆ ํ›„, ์ฃผ๋ฌธ์„ ์ƒ์„ฑํ•˜๊ณ  DB์— ๊ฒฐ์ œ/์ฃผ๋ฌธ ์ƒํƒœ ์ €์žฅ.
POST /api/payments/cancel paymentKey(String), amount(int),
orderId(Long),
reason(String) 200 OK (JSON) ๊ด€๋ฆฌ์ž/์‚ฌ์šฉ์ž ์š”์ฒญ์œผ๋กœ ๊ฒฐ์ œ ์ทจ์†Œ. Toss ์ทจ์†Œ API ํ˜ธ์ถœ ํ›„ ๋‚ด๋ถ€ ์ฃผ๋ฌธ ์ƒํƒœ๋ฅผ CANCEL๋กœ ๋ณ€๊ฒฝํ•˜๊ณ  ์žฌ๊ณ  ๋ณต์›.
GET /api/payments/fail code, message, orderId 400 (JSON) ํ† ์Šค ๊ฒฐ์ œ ์‹คํŒจ ์ฝœ๋ฐฑ ์ €์žฅ/์‘๋‹ต
GET /payments/view/success ์—†์Œ 200 OK (JSON) ๊ฒฐ์ œ ์„ฑ๊ณต ๊ฒฐ๊ณผ ํ™”๋ฉด ๋ Œ๋”
GET /payments/view/fail ์—†์Œ 302 ๊ฒฐ์ œ ์‹คํŒจ ์‹œ ํ™”๋ฉด ์ด๋™

์ƒ์„ธ๋ช…์„ธ์„œ

GET /api/orders

POST /api/orders