:doctype: book
:icons: font
:source-highlighter: highlightjs
:toc: left
:toclevels: 2
:sectlinks:


[[overview]]
= 개요

[[overview-http-verbs]]
== HTTP 동사

본 REST API에서 사용하는 HTTP 동사(verbs)는 가능한한 표준 HTTP와 REST 규약을 따릅니다.

|===
| 동사 | 용례

| `GET`
| 리소스를 가져올 때 사용

| `POST`
| 새 리소스를 만들 때 사용

| `PUT`
| 기존 리소스를 수정할 때 사용

| `PATCH`
| 기존 리소스의 일부를 수정할 때 사용

| `DELETE`
| 기존 리소스를 삭제할 떄 사용
|===

[[overview-http-status-codes]]
== HTTP 상태 코드

본 REST API에서 사용하는 HTTP 상태 코드는 가능한 표준 HTTP와 REST 규약을 따릅니다.

|===
| 상태 코드 | 용례

| `200 OK`
| 요청을 성공적으로 처리함

| `201 Created`
| 새 리소스를 성공적으로 생성함. 응답의 `Location` 헤더에 해당 리소스의 URI가 담겨있다.

| `204 No Content`
| 기존 리소스를 성공적으로 수정함.

| `400 Bad Request`
| 잘못된 요청을 보낸 경우. 응답 본문에 더 오류에 대한 정보가 담겨있다.

| `404 Not Found`
| 요청한 리소스가 없음.

| `409 Conflict`
| 클라이언트의 요청이 서버의 상태와 충돌이 발생한 경우.
|===

== 주문
=== 주문 수정
operation::order-patch[snippets='curl-request,http-request,http-response,path-parameters,request-fields,response-fields']
=== 주문 상세보기
operation::api-orderDetail[snippets='curl-request,http-request,http-response,path-parameters,response-fields']

== 점주 서비스
=== 주문 페이지
- 페이지 offset : 6

operation::orderMain-get[snippets='curl-request,http-request,http-response,request-headers,request-parameters,response-fields']
=== 점주 서비스 - 주문 페이지 (잘못된 파라미터 형식)

operation::orderMain-get-badParameterException[snippets='curl-request,http-request,http-response,request-headers,request-parameters,response-fields']

=== 점주 서비스 - 지난 주문 페이지
operation::prevOrder-get[snippets='curl-request,http-request,http-response,request-headers,request-parameters,response-fields']

=== 점주 서비스 - 지난 주문 페이지 (잘못된 파라미터 형식)
operation::prevOrder-get-BindException[snippets='curl-request,http-request,http-response,request-headers,request-parameters,response-fields']

=== 점주 서비스 - 대쉬보드
operation::owner-findDashboard[snippets='curl-request,http-request,http-response,request-headers,response-fields']

== Just Pick-up
=== 주문 내역 페이지
operation::api-customer-order-history[snippets='curl-request,http-request,http-response,request-headers,request-parameters,response-fields']

=== 장바구니 상품 추가
operation::add-item-to-basket[snippets='curl-request,http-request,http-response,request-headers,request-body,request-fields']

=== 장바구니 내역 가져오기
operation::fetch-order[snippets='curl-request,http-request,http-response,request-headers,response-fields']

=== 장바구니 상품 삭제
operation::delete-orderItem[snippets='curl-request,http-request,http-response,request-headers,path-parameters,response-fields']


=== 주문하기
operation::save-order[snippets='curl-request,http-request,http-response,request-headers']