도메인 |
기능 |
Method |
URL |
권한 |
request |
response |
추가 설명 |
유저 |
회원가입 |
POST |
/users/signup |
ALL |
{ ”username”: “이름”, ”email”: “이메일”, ”password”: “비밀번호”, ”role”: “owner” } |
{ ”userId”: 1, ”username”: “이름”, ”email”: “이메일” ”role”: “owner” } |
|
유저 |
로그인 |
POST |
/users/login |
ALL |
{ ”username”: “이름”, ”password”: “비밀번호” } |
{ ”accessToken”: “액세스 토큰”, ”refreshToken”: “리프레시 토큰” } |
|
유저 |
회원조회 |
GET |
/users/{userId} |
ALL |
- |
{ ”userId”: 1, ”username”: “이름”, ”email”: “이메일” ”role”: “owner” } |
|
유저 |
회원목록조회 |
GET |
/users?username=name&sortBy=createdAt&isAsc=true&page=1&size=10 |
MANAGER |
- |
[ { ”userId”: 1, ”username”: “이름”, ”email”: “이메일” ”role”: “owner” }, … ] |
|
유저 |
회원정보수정 |
PUT |
/users/{userId} |
ALL |
{ ”username”: “이름”, ”email”: “이메일”, ”password”: “비밀번호” ”role”: “owner” } |
{ ”userId”: 1, ”username”: “이름”, ”email”: “이메일” ”role”: “owner” } |
|
유저 |
회원탈퇴 |
DELETE |
/users/{userId} |
ALL |
- |
- |
|
유저 |
주소등록 |
POST |
/users/{userId}/addresses |
CUSTOMER |
{ ”address”: “배송지” } |
{ ”addressId” 1, ”address”: “배송지” } |
|
유저 |
주소조회 |
GET |
/users/{userId}/addresses |
CUSTOMER |
- |
{ ”addressId” 1, ”address”: “배송지” } |
|
유저 |
주소수정 |
PUT |
/users/{userId}/addresses/{addressId} |
CUSTOMER |
{ ”address”: “배송지” } |
{ ”addressId” 1, ”address”: “배송지” } |
|
유저 |
주소삭제 |
DELETE |
/users/{userId}/addresses/{addressId} |
CUSTOMER |
- |
- |
|
|
|
|
|
|
|
|
|
주문 |
주문등록 |
POST |
/orders |
CUSTOMER |
{ ”address”: “배송지”, ”request”: “요청사항”, ”storeId”: 1, ”type”: “현장주문”, ”items”: [ { “menuId: 1, “quantity: 2, “price”: 100 }, … ] |
{ ”orderId”: 1, ”paymentId: 1, ”totalPrice”: 10000, ”address”: “배송지”, ”request”: “요청사항”, ”storeId”: 1, ”type”: “현장주문”, ”items”: [ { “menuId: 1, “quantity: 2 “price”: 100 }, … ] |
결제 요청 결과에 따른 상태값 - 결제 실패 - 결제 완료 |
주문 |
주문상세조회 |
GET |
/orders/{orderId} |
ALL |
- |
{ ”orderId”: 1, ”orderStatus”: “배달완료”, ”paymentId: 1, ”totalPrice”: 10000, ”address”: “배송지”, ”request”: “요청사항”, ”storeId”: 1, ”type”: “현장주문”, ”items”: [ { “menuId: 1, “quantity: 2 “price”: 100 }, … ] |
[질문] 목록에서 가져온걸사용해도 될것 같은데 어떤가요? |
주문 |
주문목록조회 |
GET |
/orders?query=query&sortBy=createdAt&isAsc=true&page=1&size=10 |
ALL |
- |
“orderList”: [ { ”orderId”: 1, ”orderStatus”: “배달완료”, ”paymentId: 1, ”total_price”: 10000, ”address”: “배송지”, ”request”: “요청사항”, ”storeId”: 1, ”type”: “현장주문”, ”items”: [ { “menuId: 1, “quantity: 2 “price”: 100 }, … ], …, ], "pageable": {…} |
query: 메뉴이름, 가게이름 |
주문 |
주문취소 |
PUT |
/orders/{orderId} |
ALL |
- |
- |
환불 요청 결과에 따른 상태값 - 환불 실패 - 환불 완료
가게에서 수락에 따른 상태값 - 주문 취소대기 - 주문 취소완료 |
주문 |
주문내역삭제 |
DELETE |
/orders/{orderId} |
CUSTOMER, MANAGER |
- |
- |
|
주문 |
결제요청 |
POST |
/orders/{orderId}/payments |
CUSTOMER, MANAGER |
- |
{ ”pg_info”: “~”, ”price”: 11111 } |
PG사 결제연동 |
주문 |
환불요청 |
PUT |
/orders/{orderId}/payments |
CUSTOMER, MANAGER |
- |
- |
PG사 결제연동 |
|
|
|
|
|
|
|
|
가게 |
가게등록 |
POST |
/stores |
MANAGER |
{ "categoryId" : 1, "storeName" : "storeName”, "location" : "location” } |
{ ”storeId” : 1, "userId" : 1, "categoryId" : 1, "storeName" : "storeName”, "location" : "location”, ”averageRating” : null } |
|
가게 |
가게조회 |
GET |
/stores/{storeId} |
ALL |
- |
{ ”storeId” : 1, "userId" : 1, "categoryId" : 1, "storeName" : "storeName”, "location" : "location”, ”averageRating” : 4.8 } |
|
가게 |
가게목록조회 |
GET |
/stores?query=query&categoryId=1&sortBy=createdAt&isAsc=true&page=1&size=10 |
ALL |
- |
"storeList": [ { "storeId" : 1, "categoryId" : 1, "name" : 1 }, { "storeId" : 1, "categoryId" : 1, "name" : 1 }, … ], "pageable": { … }, } |
query: 메뉴이름, 가게이름 |
가게 |
가게정보수정 |
PUT |
/stores/{storeId} |
MANAGER |
{ "categoryId" : 1, "storeName" : "storeName", "location" : "location” } |
{ "storeId" : 1, "categoryId" : 1, "storeName" : "storeName”, "location" : "location” } |
|
가게 |
가게삭제 |
DELETE |
/stores/{storeId} |
MANAGER |
- |
- |
|
가게 |
리뷰조회 |
GET |
/stores/{storeId}/reviews?sortBy=createdAt&isAsc=true&page=1&size=10 |
ALL |
- |
"reviewList": [ { "storeId” : 1, "reviewId” : 1, "rating" : 4, "content" : "content” }, { "storeId” : 1, "reviewId” : 2, "rating" : 4, "content" : "content” }, … ], "pageable": { … }, } |
|
|
|
|
|
|
|
|
|
상품 |
상품등록 |
POST |
/menu |
OWNER |
{ "storeId” : 1, "menuName" : "menuName", "description" : "description”, "price" : 15000, ”isExcluded” : false } |
{ "storeId” : 1, "menuId” : 1, "menuName" : "menuName", "description" : "description”, "price" : 15000, ”isExcluded” : false } |
|
상품 |
상품상세조회 |
GET |
/menu/{menuId} |
ALL |
- |
{ "menuId” : 1, "menuName" : "menuName", "description" : "description”, "price" : 15000, ”isExcluded” : false } |
|
상품 |
상품목록조회 |
GET |
/menu |
ALL |
- |
"menuList": [ { "menuId” : 1, "menuName" : "menuName", "price" : 15000 }, { "menuId” : 1, "menuName" : "menuName", "price" : 15000 }, … ] |
|
상품 |
상품정보수정 |
PUT |
/menu/{menuId} |
OWNER |
{ "storeId” : 1, "menuName" : "menuName", "description" : "description”, "price" : 15000, "isExcluded" : true } |
{ "storeId” : 1, "menuId” : 1, "menuName" : "menuName", "description" : "description”, "price" : 15000, "isExcluded" : true } |
|
상품 |
상품삭제 |
DELETE |
/menu/{menuId} |
OWNER |
- |
- |
|
|
|
|
|
|
|
|
|
리뷰 |
리뷰등록 |
POST |
/reviews |
CUSTOMER |
{ "ordeId” : 1, "storeId” : 1, "rating" : 4, "content" : "content” } |
{ "ordeId" : 1, "storeId" : 1, "reviewId" : 1, "rating" : 4, "content" : "content” } |
|
리뷰 |
리뷰조회 |
GET |
/reviews/{reviewId} |
ALL |
- |
{ "ordeId" : 1, "storeId" : 1, "reviewId" : 1, "rating" : 4, "content" : "content” } |
|
리뷰 |
리뷰목록조회 |
GET |
/reviews |
CUSTOMER |
- |
“reviewList”: [ { "ordeId" : 1, "storeId" : 1, "reviewId" : 1, "rating" : 4, "content" : "content” }, … ] |
|
리뷰 |
리뷰수정 |
PUT |
/reviews/{reviewId} |
CUSTOMER |
{ "ordeId” : 1, "storeId” : 1, "rating" : 4, "content" : "content” } |
{ "ordeId" : 1, "storeId" : 1, "reviewId" : 1, "rating" : 4, "content" : "content” } |
|
리뷰 |
리뷰삭제 |
DELETE |
/reviews/{reviewId} |
CUSTOMER |
- |
- |
|
|
|
|
|
|
|
|
|
카테고리 |
카테고리생성 |
POST |
/categories |
MANAGER |
{ "categoryName" : "한식” } |
{ "categoryId" : 1, "categoryName" : "한식” } |
|
카테고리 |
카테고리목록조회 |
GET |
/categories |
ALL |
- |
"categoryList": [ { "categoryId" : 1, "categoryName" : "한식" }, { "categoryId" : 2, "categoryName" : "중식" }, … ] |
|
카테고리 |
카테고리수정 |
PUT |
/categories/{categoryId} |
MANAGER |
{ "content" : "치킨" } |
{ "categoryId" : 2, "categoryName" : "치킨" } |
|
카테고리 |
카테고리삭제 |
DELETE |
/categories/{categoryId} |
MANAGER |
- |
- |
|
|
|
|
|
|
|
|
|
AI_API |
ai 요청 |
POST |
/ai-api |
MANAGER, OWNER |
{ "text" : "~~50자 이내로 추천해줘" } |
{ "text" : "" } |
|