HTTP 동사
본 REST API에서 사용하는 HTTP 동사(verbs)는 가능한한 표준 HTTP와 REST 규약을 따릅니다.
동사 | 용례 |
---|---|
|
리소스를 가져올 때 사용 |
|
새 리소스를 만들 때 사용 |
|
기존 리소스를 수정할 때 사용 |
|
기존 리소스의 일부를 수정할 때 사용 |
|
기존 리소스를 삭제할 떄 사용 |
HTTP 상태 코드
본 REST API에서 사용하는 HTTP 상태 코드는 가능한 표준 HTTP와 REST 규약을 따릅니다.
상태 코드 | 용례 |
---|---|
|
요청을 성공적으로 처리함 |
|
새 리소스를 성공적으로 생성함. 응답의 |
|
기존 리소스를 성공적으로 수정함. |
|
잘못된 요청을 보낸 경우. 응답 본문에 더 오류에 대한 정보가 담겨있다. |
|
요청한 리소스가 없음. |
|
클라이언트의 요청이 서버의 상태와 충돌이 발생한 경우. |
카테고리 (점주 서비스)
카테고리 조회
Curl request
$ curl 'http://127.0.0.1:8001/api/owner/category' -i -X GET \
-H 'user-id: 2'
HTTP request
GET /api/owner/category HTTP/1.1
user-id: 2
Host: 127.0.0.1:8001
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 451
{
"code" : "SUCCESS",
"message" : "",
"data" : [ {
"categoryId" : 10,
"name" : "카페인",
"order" : 1,
"items" : [ {
"id" : 1,
"name" : "아메리카노"
}, {
"id" : 2,
"name" : "카페라테"
} ]
}, {
"categoryId" : 11,
"name" : "디저트",
"order" : 2,
"items" : [ {
"id" : 3,
"name" : "비스킷"
}, {
"id" : 4,
"name" : "와플"
} ]
} ]
}
Request headers
Name | Description |
---|---|
|
로그인한 유저 id |
Response fields
Path | Type | Description |
---|---|---|
|
|
결과 코드 SUCCESS/ERROR |
|
|
메시지 |
|
|
카테고리 고유 번호 |
|
|
카테고리 명 |
|
|
순서 |
|
|
아이템 고유번호 |
|
|
아이템 명 |
카테고리 수정
Curl request
$ curl 'http://127.0.0.1:8001/api/owner/category' -i -X PUT \
-H 'Content-Type: application/json;charset=UTF-8' \
-H 'Accept: application/json' \
-d '{
"storeId" : 1,
"categoryList" : [ {
"categoryId" : 10,
"name" : "카테고리1",
"order" : 2
}, {
"categoryId" : 11,
"name" : "카테고리2",
"order" : 1
} ],
"deletedList" : [ {
"categoryId" : 11,
"name" : "Non Coffee",
"order" : 3
} ]
}'
HTTP request
PUT /api/owner/category HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
Content-Length: 289
Host: 127.0.0.1:8001
{
"storeId" : 1,
"categoryList" : [ {
"categoryId" : 10,
"name" : "카테고리1",
"order" : 2
}, {
"categoryId" : 11,
"name" : "카테고리2",
"order" : 1
} ],
"deletedList" : [ {
"categoryId" : 11,
"name" : "Non Coffee",
"order" : 3
} ]
}
HTTP response
HTTP/1.1 204 No Content
Content-Type: application/json
Content-Length: 59
{
"code" : "SUCCESS",
"message" : "",
"data" : null
}
Request fields
Path | Type | Description |
---|---|---|
|
|
매장 고유 번호 |
|
|
수정된 카테고리 리스트 |
|
|
카테고리 고유 번호 |
|
|
카테고리명 |
|
|
순서 |
|
|
삭제된 카테고리 리스트 |
|
|
카테고리 고유 번호 |
|
|
카테고리명 |
|
|
순서 |
상품
상품 조회
Curl request
$ curl 'http://127.0.0.1:8001/item/1' -i -X GET
HTTP request
GET /item/1 HTTP/1.1
Host: 127.0.0.1:8001
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 146
{
"code" : "SUCCESS",
"message" : "",
"data" : {
"id" : 1,
"name" : "아메리카노",
"salesYn" : "Y",
"price" : 1500
}
}
Path parameters
Parameter | Description |
---|---|
|
상품 고유 번호 |
Response fields
Path | Type | Description |
---|---|---|
|
|
결과 코드 SUCCESS/ERROR |
|
|
메시지 |
|
|
상품 고유 번호 |
|
|
상품 이름 |
|
|
화면 표시 여부 Y/N |
|
|
상품 가격 |
상품 조회 - 존재하지 않는 상품
Curl request
$ curl 'http://127.0.0.1:8001/item/9999' -i -X GET
HTTP request
GET /item/9999 HTTP/1.1
Host: 127.0.0.1:8001
HTTP response
HTTP/1.1 409 Conflict
Content-Type: application/json
Content-Length: 93
{
"code" : "ERROR",
"message" : "존재하지 않는 상품입니다.",
"data" : null
}
Path parameters
Parameter | Description |
---|---|
|
상품 고유 번호 |
Response fields
Path | Type | Description |
---|---|---|
|
|
결과 코드 SUCCESS/ERROR |
|
|
메시지 |
|
|
데이터 |
상품 리스트 조회
Curl request
$ curl 'http://127.0.0.1:8001/items/1,2,3' -i -X GET
HTTP request
GET /items/1,2,3 HTTP/1.1
Host: 127.0.0.1:8001
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 219
{
"code" : "SUCCESS",
"message" : "",
"data" : [ {
"id" : 1,
"name" : "아이템 이름1"
}, {
"id" : 2,
"name" : "아이템 이름2"
}, {
"id" : 3,
"name" : "아이템 이름3"
} ]
}
Path parameters
Parameter | Description |
---|---|
|
상품 고유 번호들 |
Response fields
Path | Type | Description |
---|---|---|
|
|
결과 코드 SUCCESS/ERROR |
|
|
메시지 |
|
|
상품 고유 번호 |
|
|
상품 이름 |
상품 (점주 서비스)
상품 리스트 조회
Curl request
$ curl 'http://127.0.0.1:8001/api/owner/item/?word=' -i -X GET \
-H 'user-id: 1'
HTTP request
GET /api/owner/item/?word= HTTP/1.1
user-id: 1
Host: 127.0.0.1:8001
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 408
{
"code" : "SUCCESS",
"message" : "",
"data" : {
"itemList" : [ {
"id" : 1,
"name" : "아메리카노",
"salesYn" : "Y",
"price" : 1500,
"categoryName" : null
}, {
"id" : 2,
"name" : "카페라테",
"salesYn" : "Y",
"price" : 2000,
"categoryName" : null
} ],
"page" : {
"startPage" : 0,
"totalPage" : 1
}
}
}
Request headers
Name | Description |
---|---|
|
로그인한 유저 id |
Request parameters
Parameter | Description |
---|---|
|
아이템 명 or 카테고리 명 |
Response fields
Path | Type | Description |
---|---|---|
|
|
결과 코드 SUCCESS/ERROR |
|
|
메시지 |
|
|
상품 고유 번호 |
|
|
상품 이름 |
|
|
화면 표시 여부 Y/N |
|
|
상품 가격 |
|
|
카테고리 명 |
|
|
현제 페이지 |
|
|
토탈 페이지 |
상품 조회
Curl request
$ curl 'http://127.0.0.1:8001/api/owner/item/1' -i -X GET
HTTP request
GET /api/owner/item/1 HTTP/1.1
Host: 127.0.0.1:8001
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 196
{
"code" : "SUCCESS",
"message" : "",
"data" : {
"id" : 1,
"name" : "아메리카노",
"salesYn" : "Y",
"price" : 1500,
"itemOptions" : [ ],
"categoryId" : null
}
}
Path parameters
Parameter | Description |
---|---|
|
상품 고유 번호 |
Response fields
Path | Type | Description |
---|---|---|
|
|
결과 코드 SUCCESS/ERROR |
|
|
메시지 |
|
|
상품 고유 번호 |
|
|
상품 이름 |
|
|
화면 표시 여부 Y/N |
|
|
상품 가격 |
|
|
아이템 옵션 |
|
|
카테고리 고유번호 |
상품 등록
Curl request
$ curl 'http://127.0.0.1:8001/api/owner/item' -i -X POST \
-H 'Content-Type: application/json;charset=UTF-8' \
-H 'user-id: 2' \
-H 'Accept: application/json' \
-d '{
"itemId" : null,
"itemName" : "테스트아이템",
"itemPrice" : 3000,
"categoryId" : 1,
"requiredOption" : [ {
"id" : null,
"name" : "HOT",
"optionType" : "REQUIRED"
} ],
"otherOption" : [ {
"id" : null,
"name" : "샷 추가",
"optionType" : "OTHER"
} ]
}'
HTTP request
POST /api/owner/item HTTP/1.1
Content-Type: application/json;charset=UTF-8
user-id: 2
Accept: application/json
Content-Length: 299
Host: 127.0.0.1:8001
{
"itemId" : null,
"itemName" : "테스트아이템",
"itemPrice" : 3000,
"categoryId" : 1,
"requiredOption" : [ {
"id" : null,
"name" : "HOT",
"optionType" : "REQUIRED"
} ],
"otherOption" : [ {
"id" : null,
"name" : "샷 추가",
"optionType" : "OTHER"
} ]
}
HTTP response
HTTP/1.1 201 Created
Content-Type: application/json
Content-Length: 65
{
"code" : "SUCCESS",
"message" : "성공",
"data" : null
}
Request headers
Name | Description |
---|---|
|
로그인한 유저 id |
Request fields
Path | Type | Description |
---|---|---|
|
|
아이템 고유번호 |
|
|
아이템 이름 |
|
|
아이템 가격 |
|
|
카테고리 고유번호 |
|
|
필수옵션 |
|
|
옵션 고유번호 |
|
|
옵션 이름 |
|
|
옵션 타입 |
|
|
추가옵션 |
|
|
옵션 고유번호 |
|
|
옵션 이름 |
|
|
옵션 타입 |
상품 수정
Curl request
$ curl 'http://127.0.0.1:8001/api/owner/item/1' -i -X PUT \
-H 'Content-Type: application/json;charset=UTF-8' \
-H 'user-id: 2' \
-H 'Accept: application/json' \
-d '{
"itemId" : 1,
"itemName" : "테스트아이템",
"itemPrice" : 3000,
"categoryId" : 1,
"requiredOption" : [ {
"id" : null,
"name" : "HOT",
"optionType" : "REQUIRED"
} ],
"otherOption" : [ {
"id" : null,
"name" : "샷 추가",
"optionType" : "OTHER"
} ]
}'
HTTP request
PUT /api/owner/item/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
user-id: 2
Accept: application/json
Content-Length: 296
Host: 127.0.0.1:8001
{
"itemId" : 1,
"itemName" : "테스트아이템",
"itemPrice" : 3000,
"categoryId" : 1,
"requiredOption" : [ {
"id" : null,
"name" : "HOT",
"optionType" : "REQUIRED"
} ],
"otherOption" : [ {
"id" : null,
"name" : "샷 추가",
"optionType" : "OTHER"
} ]
}
HTTP response
HTTP/1.1 204 No Content
Content-Type: application/json
Content-Length: 65
{
"code" : "SUCCESS",
"message" : "성공",
"data" : null
}
Request headers
Name | Description |
---|---|
|
로그인한 유저 id |
Request fields
Path | Type | Description |
---|---|---|
|
|
아이템 고유번호 |
|
|
아이템 이름 |
|
|
아이템 가격 |
|
|
카테고리 고유번호 |
|
|
필수옵션 |
|
|
옵션 고유번호 |
|
|
옵션 이름 |
|
|
옵션 타입 |
|
|
추가옵션 |
|
|
옵션 고유번호 |
|
|
옵션 이름 |
|
|
옵션 타입 |
상품 (사용자 서비스)
상품 리스트 조회
Curl request
$ curl 'http://just-pickup.com:8000/api/customer/items/1,2' -i -X GET
HTTP request
GET /api/customer/items/1,2 HTTP/1.1
Host: just-pickup.com:8000
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 608
{
"code" : "SUCCESS",
"message" : "",
"data" : [ {
"id" : 1,
"name" : "아메리카노",
"salesYn" : "Y",
"price" : 1500,
"itemOptions" : [ {
"id" : 1,
"optionType" : "REQUIRED",
"name" : "Hot"
}, {
"id" : 2,
"optionType" : "OTHER",
"name" : "add shot"
} ]
}, {
"id" : 2,
"name" : "카페라테",
"salesYn" : "Y",
"price" : 2500,
"itemOptions" : [ {
"id" : 1,
"optionType" : "REQUIRED",
"name" : "Hot"
}, {
"id" : 2,
"optionType" : "OTHER",
"name" : "add shot"
} ]
} ]
}
Path parameters
Parameter | Description |
---|---|
|
상품 고유 번호리스트 |
Response fields
Path | Type | Description |
---|---|---|
|
|
결과 코드 SUCCESS/ERROR |
|
|
메시지 |
|
|
상품 고유 번호 |
|
|
상품 이름 |
|
|
화면 표시 여부 Y/N |
|
|
상품 가격 |
|
|
아이템 옵션 고유 번호 |
|
|
옵션 타입 |
|
|
옵션명 |
상품 조회
Curl request
$ curl 'http://just-pickup.com:8000/api/customer/item/1' -i -X GET
HTTP request
GET /api/customer/item/1 HTTP/1.1
Host: just-pickup.com:8000
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 371
{
"code" : "SUCCESS",
"message" : "",
"data" : {
"id" : 1,
"name" : "아메리카노",
"salesYn" : "Y",
"price" : 1500,
"itemOptions" : [ {
"id" : 1,
"optionType" : "REQUIRED",
"name" : "Hot"
}, {
"id" : 2,
"optionType" : "OTHER",
"name" : "add shot"
} ],
"storeId" : 1,
"categoryId" : 1
}
}
Path parameters
Parameter | Description |
---|---|
|
상품 고유 번호 |
Response fields
Path | Type | Description |
---|---|---|
|
|
결과 코드 SUCCESS/ERROR |
|
|
메시지 |
|
|
상품 고유 번호 |
|
|
상품 이름 |
|
|
화면 표시 여부 Y/N |
|
|
상품 가격 |
|
|
아이템 옵션 고유 번호 |
|
|
옵션 타입 |
|
|
옵션명 |
|
|
매장 고유번호 |
|
|
카테고리 고유번호 |
매장
매장 조회
Curl request
$ curl 'http://just-pickup.com:8000/store/1' -i -X GET
HTTP request
GET /store/1 HTTP/1.1
Host: just-pickup.com:8000
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 155
{
"code" : "SUCCESS",
"message" : "",
"data" : {
"id" : 1,
"name" : "이디야커피 대림역점",
"phoneNumber" : "010-1234-5678"
}
}
Path parameters
Parameter | Description |
---|---|
|
매장 고유번호 |
Response fields
Path | Type | Description |
---|---|---|
|
|
결과 코드 SUCCESS/ERROR |
|
|
메시지 |
|
|
매장 고유번호 |
|
|
매장 이름 |
|
|
매장 번호 |
매장 리스트 조회
Curl request
$ curl 'http://just-pickup.com:8000/stores/1,2,3' -i -X GET
HTTP request
GET /stores/1,2,3 HTTP/1.1
Host: just-pickup.com:8000
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 321
{
"code" : "SUCCESS",
"message" : "",
"data" : [ {
"id" : 1,
"name" : "매장 이름1",
"phoneNumber" : "010-1234-5678"
}, {
"id" : 2,
"name" : "매장 이름2",
"phoneNumber" : "010-1234-5678"
}, {
"id" : 3,
"name" : "매장 이름3",
"phoneNumber" : "010-1234-5678"
} ]
}
Path parameters
Parameter | Description |
---|---|
|
매장 고유 번호들 |
Response fields
Path | Type | Description |
---|---|---|
|
|
결과 코드 SUCCESS/ERROR |
|
|
메시지 |
|
|
매장 고유 번호 |
|
|
매장 이름 |
|
|
매장 휴대폰 번호 |
매장 (점주 서비스)
사용자 고유번호로 매장 조회
Curl request
$ curl 'http://just-pickup.com:8000/api/owner/store' -i -X GET \
-H 'user-id: 1'
HTTP request
GET /api/owner/store HTTP/1.1
user-id: 1
Host: just-pickup.com:8000
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 103
{
"code" : "SUCCESS",
"message" : "",
"data" : {
"id" : 10,
"name" : "한강커피"
}
}
Request headers
Name | Description |
---|---|
|
로그인한 유저 id |
Response fields
Path | Type | Description |
---|---|---|
|
|
결과 코드 SUCCESS/ERROR |
|
|
메시지 |
|
|
매장 고유번호 |
|
|
매장 이름 |
매장 등록
Curl request
$ curl 'http://just-pickup.com:8000/api/owner/store' -i -X POST \
-H 'Content-Type: application/json;charset=UTF-8' \
-H 'Accept: application/json' \
-H 'user-id: 1' \
-d '{
"name" : "점주 이름",
"phoneNumber" : "010-1234-5678",
"address" : "서울특별시 마포구 용강동 123-1길",
"zipcode" : "129845",
"latitude" : 30.90199982,
"longitude" : 112.1298347
}'
HTTP request
POST /api/owner/store HTTP/1.1
Content-Type: application/json;charset=UTF-8
Accept: application/json
user-id: 1
Content-Length: 208
Host: just-pickup.com:8000
{
"name" : "점주 이름",
"phoneNumber" : "010-1234-5678",
"address" : "서울특별시 마포구 용강동 123-1길",
"zipcode" : "129845",
"latitude" : 30.90199982,
"longitude" : 112.1298347
}
HTTP response
HTTP/1.1 201 Created
Request headers
Name | Description |
---|---|
|
JWT 유저 고유 번호 |
Request fields
Path | Type | Description |
---|---|---|
|
|
매징 이름 |
|
|
매장 번호 |
|
|
매장 주소 |
|
|
매장 우편번호 |
|
|
위도 |
|
|
경도 |
매장 (사용자 서비스)
즐겨찾는 매장 조회
Curl request
$ curl 'http://just-pickup.com:8000/api/customer/store/favorite?latitude=37.5403912&longitude=126.9438922' -i -X GET \
-H 'user-id: 2'
HTTP request
GET /api/customer/store/favorite?latitude=37.5403912&longitude=126.9438922 HTTP/1.1
user-id: 2
Host: just-pickup.com:8000
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 408
{
"code" : "SUCCESS",
"message" : "",
"data" : [ {
"id" : 1,
"name" : "이디야커피 마포오벨리스크점",
"distance" : "145m",
"favoriteCounts" : 5
}, {
"id" : 2,
"name" : "만랩커피 마포점",
"distance" : "151m",
"favoriteCounts" : 5
}, {
"id" : 3,
"name" : "커피온리 마포역점",
"distance" : "341m",
"favoriteCounts" : 5
} ]
}
Request headers
Name | Description |
---|---|
|
로그인한 유저 id |
Request parameters
Parameter | Description |
---|---|
|
고객의 위도 [필수] |
|
고객의 경도 [필수] |
Response fields
Path | Type | Description |
---|---|---|
|
|
결과 코드 SUCCESS/ERROR |
|
|
메시지 |
|
|
매장 고유번호 |
|
|
매장 이름 |
|
|
고객과의 거리차이 m/km |
|
|
즐겨찾기 회수 |
매장 검색 조회
Curl request
$ curl 'http://just-pickup.com:8000/api/customer/store/search?latitude=37.5403912&longitude=126.9438922&page=0&size=2' -i -X GET
HTTP request
GET /api/customer/store/search?latitude=37.5403912&longitude=126.9438922&page=0&size=2 HTTP/1.1
Host: just-pickup.com:8000
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 359
{
"code" : "SUCCESS",
"message" : "",
"data" : {
"stores" : [ {
"id" : 1,
"name" : "이디야커피 마포오벨리스크점",
"distance" : "145m",
"favoriteCounts" : 10
}, {
"id" : 2,
"name" : "만랩커피 마포점",
"distance" : "151m",
"favoriteCounts" : 5
} ],
"hasNext" : true
}
}
Request parameters
Parameter | Description |
---|---|
|
고객의 위도 [필수] |
|
고객의 경도 [필수] |
|
검색할 페이지 [Optional, default: 0] |
|
검색할 페이지 사이즈 [Optional, default: 2] |
Response fields
Path | Type | Description |
---|---|---|
|
|
결과 코드 SUCCESS/ERROR |
|
|
메시지 |
|
|
매장 고유번호 |
|
|
매장 이름 |
|
|
고객과의 거리차이 m/km |
|
|
매장 즐겨찾기 수 |
|
|
더보기 버튼 유무 |
즐겨찾는 매장 (사용자 서비스)
즐겨찾는 매장 조회
Curl request
$ curl 'http://just-pickup.com:8000/api/customer/favoriteStore/1' -i -X GET \
-H 'user-id: 1'
HTTP request
GET /api/customer/favoriteStore/1 HTTP/1.1
user-id: 1
Host: just-pickup.com:8000
HTTP response
HTTP/1.1 200 OK
Content-Type: application/json
Content-Length: 116
{
"code" : "SUCCESS",
"message" : "",
"data" : {
"userId" : 1,
"storeId" : 1,
"exist" : true
}
}
Request headers
Name | Description |
---|---|
|
로그인한 유저 id |
Path parameters
Parameter | Description |
---|---|
|
매장 고유 번호 |
Response fields
Path | Type | Description |
---|---|---|
|
|
결과 코드 SUCCESS/ERROR |
|
|
메시지 |
|
|
유저 고유번호 |
|
|
매장 고유 번호 |
|
|
즐겨찾기 매장 존재여부 |
즐겨찾는 매장 추가 | 제거
Curl request
$ curl 'http://just-pickup.com:8000/api/customer/favoriteStore/1' -i -X PATCH \
-H 'user-id: 1'
HTTP request
PATCH /api/customer/favoriteStore/1 HTTP/1.1
user-id: 1
Host: just-pickup.com:8000
HTTP response
HTTP/1.1 204 No Content
Content-Type: application/json
Content-Length: 65
{
"code" : "SUCCESS",
"message" : "성공",
"data" : null
}
Request headers
Name | Description |
---|---|
|
로그인한 유저 id |
Path parameters
Parameter | Description |
---|---|
|
매장 고유 번호 |