-
Notifications
You must be signed in to change notification settings - Fork 3
API 명세
건 edited this page Sep 15, 2023
·
9 revisions
POST /api/v1/signup
{
"password": "password",
"passwordCheck": "password",
"email": "admin@email.com",
"nickname": "어드민"
}
HTTP 201
HTTP 상태 코드 | 메시지 |
---|---|
400 | 이미 회원가입된 이메일입니다. |
400 | 비밀번호와 비밀번호 확인이 서로 다릅니다. |
400 | 유효하지 않은 이메일 형식입니다. |
400 | 유효하지 않은 비밀번호 형식입니다. |
400 | 누락된 항목이 있습니다. 누락된 항목: email |
400 | 누락된 항목이 있습니다. 누락된 항목: password |
400 | 누락된 항목이 있습니다. 누락된 항목: passwordCheck |
400 | 누락된 항목이 있습니다. 누락된 항목: nickname |
POST /api/v1/login
{
"password": "password",
"email": "admin@email.com"
}
HTTP 200
{
"accessToken": "{Jwt}"
}
HTTP 상태 코드 | 메시지 |
---|---|
400 | 이메일 혹은 비밀번호가 일치하지 않습니다. (미반영) |
400 | 누락된 항목이 있습니다. 누락된 항목: email |
400 | 누락된 항목이 있습니다. 누락된 항목: password |
GET /api/v1/cart/items
Authorization: Bearer {Jwt}
HTTP 200
[
{
"cartItemId": 1,
"name": "물",
"imageFileName": "/water.jpg",
"price": 10000,
"quantity": 2,
"soldOut": false,
},
{
"id": 2,
"name": "컴퓨터",
"imageUrl": "/computer.jpg",
"quantity": 1,
"price": 10000,
"quantity": 2,
"soldOut": false,
}
]
HTTP 상태 코드 | 메시지 |
---|---|
401 | 로그인이 필요합니다. |
POST /api/v1/cart/items
Authorization: Bearer {Jwt}
{
"productId": 1,
}
HTTP 200
HTTP 상태 코드 | 메시지 | 비고 |
---|---|---|
401 | 로그인이 필요합니다. | |
404 | 존재하지 않는 상품입니다. | |
400 | 장바구니에 이미 존재하는 상품입니다. | |
400 | 필수 항목이 누락되었습니다. | productId가 없을 때 |
400 | 품절된 상품입니다. |
PATCH /api/v1/cart/items/{cartItemId}
Authorization: Bearer {Jwt}
{
"quantity": 5
}
HTTP 200
HTTP 상태 코드 | 메시지 | 비고 |
---|---|---|
401 | 로그인이 필요합니다. | |
400 | 필수 항목이 누락되었습니다. | 변경 수량 정보가 없을 때 |
404 | 존재하지 않는 장바구니 상품입니다. | 타인의 장바구니 아이템에 접근할 때, 존재하지 않는 아이템에 접근할 때 |
400 | 장바구니 상품 수량은 1개 이상 1,000개 이하여야합니다. |
DELETE /cart/items/{cartItemId}
Authorization: Bearer {Jwt}
HTTP 204
HTTP 상태 코드 | 메시지 | 비고 |
---|---|---|
401 | 로그인이 필요합니다. | |
404 | 존재하지 않는 장바구니 상품입니다. | 타인의 장바구니 아이템에 접근할 때, 존재하지 않는 아이템에 접근할 때 |
GET /api/v1/products
HTTP 200
[
{
"id": 1,
"name": "물",
"imageFileName": "/water.jpg",
"price": 10000,
"stock": 200,
},
{
"id": 2,
"name": "컴퓨터",
"imageFileName": "/computer.jpg",
"price": 2000000,
"stock": 15
}
]
GET /api/v1/products/{productId}
HTTP 200
{
"id": 1,
"name": "물",
"imageFileName": "/water.jpg",
"price": 10000,
"stock": 200
}
HTTP 상태 코드 | 메시지 |
---|---|
404 | 존재하지 않는 상품입니다. |
GET /api/v1/products/search?keyword=물&sort=price,desc
or
GET /api/v1/products/search?keyword=물&sort=rate,desc&birthYearRange=THIRTIES&gender=MALE
HTTP 200
[
{
"id": 1,
"name": "물",
"imageFileName": "/water.jpg",
"price": 10000,
"stock": 200,
},
{
"id": 2,
"name": "물티슈",
"imageFileName": "/water-tissue.jpg",
"price": 2000,
"stock": 1000,
}
]
HTTP 상태 코드 | 메시지 | 비고 |
---|---|---|
400 | 내용을 입력해 주세요. | 키워드 없이 검색할 때 |
400 | 잘못된 정렬 기준입니다. | 정렬 조건이 지원되지 않을 때 |
GET /api/v1/order-history
Authorization: Bearer {Jwt}
HTTP 200
[
{
"orderId": 2,
"orderItems": [
{
"id": 3,
"name": "책",
"imageFileName": "/book.jpg",
"price": 15000,
"quantity": 1,
},
{
"id": 4,
"name": "마우스",
"imageFileName": "/mouse.jpg",
"price": 12000,
"quantity": 1,
}
]
},
{
"orderId": 1,
"orderItems": [
{
"id": 1,
"name": "물",
"imageFileName": "/water.jpg",
"price": 10000,
"quantity": 2,
},
{
"id": 2,
"name": "물티슈",
"imageFileName": "/water-tissue.jpg",
"price": 2000,
"quantity": 3,
}
]
},
]
HTTP 상태 코드 | 메시지 |
---|---|
401 | 로그인이 필요합니다. |
GET /api/v1/order/{orderId}
Authorization: Bearer {Jwt}
HTTP 200
{
"orderId": 1,
"orderName": "물 외 1건",
"totalPrice": 26000,
"orderItems": [
{
"id": 1,
"name": "물",
"imageFileName": "/water.jpg",
"price": 10000,
"quantity": 2,
},
{
"id": 2,
"name": "물티슈",
"imageFileName": "/water-tissue.jpg",
"price": 2000,
"quantity": 3,
}
]
}
HTTP 상태 코드 | 메시지 |
---|---|
401 | 로그인이 필요합니다. |
404 | 존재하지 않는 주문 내역입니다. |
POST /api/v1/order
Authorization: Bearer {Jwt}
HTTP 201
Location: /order/1
HTTP 상태 코드 | 메시지 |
---|---|
401 | 로그인이 필요합니다. |
400 | 장바구니가 비어있습니다. |
400 | 품절된 상품입니다. |
400 | 상품의 재고가 부족합니다. |
PUT /api/v1/order
Authorization: Bearer {Jwt}
{
"orderId": 1,
"payType": "POINT"
}
HTTP 200
HTTP 상태 코드 | 메시지 |
---|---|
401 | 로그인이 필요합니다. |
400 | 상품의 재고가 부족합니다. |
400 | 주문 상태가 올바르지 않습니다. (테스트 X) |
404 | 존재하지 않는 주문입니다. (테스트 X) |
POST /api/v1/pay/point
Authorization: Bearer {Jwt}
{
"orderId": 1,
}
HTTP 200
{
"orderId": 1
}
HTTP 상태 코드 | 메시지 | 비고 |
---|---|---|
400 | 주문 상태가 올바르지 않습니다. | |
400 | 포인트가 부족합니다. | |
404 | 존재하지 않는 주문입니다. | 다른 회원의 주문일 때, 존재하지 않는 주문일 때 |
POST /api/v1/pay/toss
Authorization: Bearer {Jwt}
{
"orderId": 1
}
HTTP 200
{
"orderId": 1
}
HTTP 상태 코드 | 메시지 | 비고 |
---|---|---|
400 | 주문 상태가 올바르지 않습니다. | 이미 결제된 주문일 때 |
404 | 존재하지 않는 주문입니다. | 존재하지 않는 주문일 때, 다른 회원의 주문일 때 |
GET /api/v1/pay/toss?orderId={orderId}
Authorization: Bearer {Jwt}
HTTP 200
{
"encodedOrderId": "MTEtLey5mO2CqC0tMjAyMy0wOC0xN1QxNzoyNzoxNy4zNDY3ODQ=",
"orderName": "치킨 외 1건",
"price": 45000,
"customerEmail": "test_email@woowafriends.com",
"customerName": "tester1",
"customerKey": "c4ca4238-a0b9-3382-8dcc-509a6f75849b",
"successUrl": "{ORIGIN}/pay/loading-popup",
"failUrl": "{ORIGIN}/pay/fail-popup"
}
HTTP 상태 코드 | 메시지 | 비고 |
---|---|---|
400 | 주문 상태가 올바르지 않습니다. | 이미 결제된 주문일 때 |
404 | 존재하지 않는 주문입니다. | 존재하지 않는 주문일 때, 다른 회원의 주문일 때 |
POST /api/v1/pay/toss
Authorization: Bearer {Jwt}
{
"paymentKey": "...",
"orderId": {base64 encoded},
"amount": 20000,
"paymentType": "..."
}
HTTP 200
{
"orderId": 9
}
HTTP 상태 코드 | 메시지 | 비고 |
---|---|---|
400 | 주문 상태가 올바르지 않습니다. | 이미 결제된 주문일 때 |
404 | 존재하지 않는 주문입니다. | 존재하지 않는 주문일 때, 다른 회원의 주문일 때 |
500 | 알수 없는 오류가 발생했습니다. | 외부 API 호출에 실패했을 때 |
PUT /api/v1/point
Authorization: Bearer {Jwt}
{
"point": 10000,
}
HTTP 200
HTTP 상태 코드 | 메시지 |
---|---|
400 | 포인트 충전 값은 0보다 커야 합니다. |
GET /api/v1/point
Authorization: Bearer {Jwt}
HTTP 200
{
point: 1000
}
POST /api/v1/rate
Authorization: Bearer {Jwt}
{
"orderItemId": 1
"score": 5
}
HTTP 201
HTTP 상태 코드 | 메시지 |
---|---|
400 | 별점은 0이상 5이하의 정수여야 합니다. |
400 | 이미 평가를 완료한 주문 상품입니다. |
404 | 존재하지 않는 주문 상품입니다. |
GET /api/v1/rate/product/{productId}
HTTP 200
{
"rateCount": 15
"averageScore": 3.2
}
HTTP 상태 코드 | 메시지 |
---|---|
404 | 존재하지 않는 상품입니다. |
GET /api/v1/rate/orderItem/{orderItemId}
Authorization: Bearer {Jwt}
HTTP 200
{
"score": 5
}
HTTP 상태 코드 | 메시지 |
---|---|
404 | 존재하지 않는 주문 평가 정보입니다. |