API 문서 개요
이 문서를 통해 주문 관리 플랫폼의 API 사용법을 알 수 있습니다.
회원
회원가입
POST /api/users/sign-up HTTP/1.1
Content-Type: application/json
Content-Length: 178
X-CSRF-TOKEN: hTVfTjYG-QLapYjsDWoekQGbNLrB3fe7BXstdhk1mDaKk0wgtFc9dgZlyWf3kL6Jb0cq92T6GduivM-WMkxLEyEN_ga78S4Z
Host: localhost:8080
{
"id" : "testuser",
"nickname" : "testname1",
"password" : "Password1Q@w",
"email" : "test@example.com",
"phone" : "010-1234-5678",
"tokenValue" : "RoleTokenValue"
}
| Path | Type | Description | Required |
|---|---|---|---|
|
|
회원 ID |
true |
|
|
닉네임 |
true |
|
|
이메일 |
true |
|
|
비밀번호 |
true |
|
|
전화번호 |
true |
|
|
특정 권한(사장님, 관리자) 회원가입 토큰 |
false |
HTTP/1.1 302 Found
Content-Language: en
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Location: /api/users/sign-in
로그아웃
POST /api/users/sign-out HTTP/1.1
Authorization: Bearer jwt-token
X-CSRF-TOKEN: AFKFQL7Pa6d8OWrF7luiJIZEuGZfrChQlCbyHIT-CHmgO-VwZTHhdIz8CcFRAFv1jHaWQLIllQQ5zRB9okXLJODJbh2SC9FD
Host: localhost:8080
Content-Type: application/x-www-form-urlencoded
| Name | Description |
|---|---|
|
JWT 토큰 |
HTTP/1.1 302 Found
Content-Language: en
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Location: /api/users/sign-in
내 정보 조회
GET /api/users/me?page=0&size=10&sortBy=createdAt&isAsc=false HTTP/1.1
Authorization: Bearer jwt-token
X-CSRF-TOKEN: af1mWucuTlI0eteXBMAxDPvDAn1kO4xgP5LHsUzqG1TJN1R2XpgAatRKLWsZGLbzPe0FNMr2Lx9cXe1NWvGlhH-PL2P5AGcS
Host: localhost:8080
| Name | Description |
|---|---|
|
JWT 토큰 |
| Parameter | Description | Required |
|---|---|---|
|
페이지 번호 |
false |
|
페이지 크기 |
false |
|
정렬 기준 |
false |
|
오름차순 여부 |
false |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 259
{
"code" : 200,
"status" : "OK",
"message" : "성공적으로 처리되었습니다.",
"data" : [ {
"id" : "testuser",
"nickname" : "testname1",
"email" : "test@example.com",
"phone" : "010-1234-5678",
"isAdmin" : "MANAGER"
} ]
}
| Path | Type | Description |
|---|---|---|
|
|
응답 코드 |
|
|
응답 상태 |
|
|
응답 메시지 |
|
|
사용자의 고유 ID |
|
|
사용자의 닉네임 |
|
|
사용자의 이메일 주소 |
|
|
사용자의 전화번호 |
|
|
사용자의 권한 (예: CUSTOMER, ADMIN) |
회원 정보 수정
PATCH /api/users/me HTTP/1.1
Content-Type: application/json
Authorization: Bearer jwt-token
Content-Length: 95
X-CSRF-TOKEN: PXRAq5bsTW8MSFhuipvclyCKoQHef41VhCODjEJAuKTk6IuoWxVxz_LZeVwhKzta7Lbo8xi5jGO_T7l4tUHiuiZ42ZfT2-mb
Host: localhost:8080
{
"nickname" : "newname12",
"email" : "newemail@example.com",
"phone" : "010-8765-4321"
}
| Name | Description |
|---|---|
|
JWT 토큰 |
| Path | Type | Description | Required |
|---|---|---|---|
|
|
변경할 닉네임 |
true |
|
|
변경할 이메일 |
true |
|
|
변경할 전화번호 |
true |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 260
{
"code" : 200,
"status" : "OK",
"message" : "성공적으로 처리되었습니다.",
"data" : {
"id" : "testuser",
"nickname" : "newname12",
"email" : "newemail@example.com",
"phone" : "010-8765-4321",
"isAdmin" : "CUSTOMER"
}
}
| Path | Type | Description |
|---|---|---|
|
|
응답 코드 |
|
|
응답 상태 |
|
|
응답 메시지 |
|
|
사용자의 고유 ID |
|
|
사용자의 닉네임 |
|
|
사용자의 이메일 주소 |
|
|
사용자의 전화번호 |
|
|
사용자의 권한 (예: CUSTOMER, ADMIN) |
회원 탈퇴
DELETE /api/users/me HTTP/1.1
Authorization: Bearer jwt-token
X-CSRF-TOKEN: TtUGdv4UHjnHgcU6DQd4162fOpdjRGeNI2c1VjWn9dsdXeKxfLZnEstyLVzqtaYINSpMsZurF68FcVSgFVBQMgaXxrkpZdXS
Host: localhost:8080
| Name | Description |
|---|---|
|
JWT 토큰 |
HTTP/1.1 302 Found
Content-Language: en
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Location: /api/users/sign-in
주문
주문 생성
POST /api/orders HTTP/1.1
Content-Type: application/json
Authorization: Bearer jwt-token
Content-Length: 238
X-CSRF-TOKEN: 46QSRfn3sU0SBm25JIGYXyTzCPoj_tNEodxh0sDhxa64dh3h0ZUjd5zFh3k_NVSMQKysZ0KXJZhAx-dpkO0F6_DXoJ3dTy7W
Host: localhost:8080
{
"menuId" : "550e8400-e29b-41d4-a716-446655440001",
"quantity" : 2,
"orderRequest" : "양념 많이 주세요",
"paymentType" : "CREDIT_CARD",
"orderType" : "ONLINE",
"userAddressId" : "550e8400-e29b-41d4-a716-446655440003"
}
| Name | Description |
|---|---|
|
JWT 토큰 |
| Path | Type | Description | Required |
|---|---|---|---|
|
|
메뉴 ID |
true |
|
|
주문 수량 |
true |
|
|
주문 요청사항 |
false |
|
|
결제 방식(CREDIT_CARD) |
true |
|
|
주문 타입 (ONLINE, OFFLINE) |
true |
|
|
배송지 주소 ID |
false |
HTTP/1.1 201 Created
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 1042
{
"code" : 201,
"status" : "Created",
"message" : "성공적으로 처리되었습니다.",
"data" : {
"orderId" : "550e8400-e29b-41d4-a716-446655440000",
"orderStatus" : "PENDING",
"quantity" : 2,
"orderRequest" : "양념 많이 주세요",
"orderType" : "ONLINE",
"addressInfo" : {
"userAddressId" : "550e8400-e29b-41d4-a716-446655440003",
"address" : "서울시 강남구 테헤란로 123",
"detail" : "101동 1001호",
"defaultAddress" : false
},
"orderedAt" : "2025-02-25T01:33:29.643965",
"updatedAt" : "2025-02-25T01:33:29.643976",
"restaurantId" : "550e8400-e29b-41d4-a716-446655440002",
"restaurantName" : "맛있는 치킨",
"menuName" : "후라이드 치킨",
"menuPrice" : 18000,
"totalPrice" : 36000,
"paymentStatus" : "COMPLETED",
"paymentType" : "CREDIT_CARD",
"externalPaymentId" : "550e8400-e29b-41d4-a716-446655440004",
"paidAt" : "2025-02-25T01:33:29.643979",
"refundedAt" : null,
"createdBy" : "testuser"
}
}
| Path | Type | Description |
|---|---|---|
|
|
응답 코드 |
|
|
응답 상태 |
|
|
응답 메시지 |
|
|
주문 ID |
|
|
주문 상태 |
|
|
주문 수량 |
|
|
주문 요청사항 |
|
|
주문 타입 |
|
|
주소 ID |
|
|
주소 |
|
|
상세 주소 |
|
|
기본 배송지 여부 |
|
|
주문 시간 |
|
|
주문 업데이트 시간 |
|
|
음식점 ID |
|
|
음식점 이름 |
|
|
메뉴 이름 |
|
|
메뉴 가격 |
|
|
총 주문 금액 |
|
|
결제 상태 |
|
|
결제 방식 |
|
|
외부 결제 ID |
|
|
결제 시간 |
|
|
주문 생성자 |
|
|
환불 시간 |
주문 상세조회
GET /api/orders/550e8400-e29b-41d4-a716-446655440000 HTTP/1.1
Authorization: Bearer jwt-token
X-CSRF-TOKEN: VY_Ho1yr5Q1IqiN2txFhEGYoZDPo6QVp0DMR7C5p50UvkavQYLnxxmuc0jplnxYU0jxVKFROSQrci2BE4gso3RhdgXEa9821
Host: localhost:8080
| Name | Description |
|---|---|
|
JWT 토큰 |
| Parameter | Description |
|---|---|
|
주문 ID |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 1036
{
"code" : 200,
"status" : "OK",
"message" : "성공적으로 처리되었습니다.",
"data" : {
"orderId" : "550e8400-e29b-41d4-a716-446655440000",
"orderStatus" : "PENDING",
"quantity" : 2,
"orderRequest" : "양념 많이 주세요",
"orderType" : "ONLINE",
"addressInfo" : {
"userAddressId" : "550e8400-e29b-41d4-a716-446655440003",
"address" : "서울시 강남구 테헤란로 123",
"detail" : "101동 1001호",
"defaultAddress" : false
},
"orderedAt" : "2025-02-25T01:33:29.697802",
"updatedAt" : "2025-02-25T01:33:29.697807",
"restaurantId" : "550e8400-e29b-41d4-a716-446655440002",
"restaurantName" : "맛있는 치킨",
"menuName" : "후라이드 치킨",
"menuPrice" : 18000,
"totalPrice" : 36000,
"paymentStatus" : "COMPLETED",
"paymentType" : "CREDIT_CARD",
"externalPaymentId" : "550e8400-e29b-41d4-a716-446655440004",
"paidAt" : "2025-02-25T01:33:29.69781",
"refundedAt" : null,
"createdBy" : "testuser"
}
}
| Path | Type | Description |
|---|---|---|
|
|
응답 코드 |
|
|
응답 상태 |
|
|
응답 메시지 |
|
|
주문 ID |
|
|
주문 상태 |
|
|
주문 수량 |
|
|
주문 요청사항 |
|
|
주문 타입 |
|
|
주소 ID |
|
|
주소 |
|
|
상세 주소 |
|
|
기본 배송지 여부 |
|
|
주문 시간 |
|
|
주문 업데이트 시간 |
|
|
음식점 ID |
|
|
음식점 이름 |
|
|
메뉴 이름 |
|
|
메뉴 가격 |
|
|
총 주문 금액 |
|
|
결제 상태 |
|
|
결제 방식 |
|
|
외부 결제 ID |
|
|
결제 시간 |
|
|
주문 생성자 |
|
|
환불 시간 |
내 주문 내역 조회
GET /api/orders/my?keyword=%EC%B9%98%ED%82%A8&statuses=PAID&startDate=2025-02-14&endDate=2025-02-21&isAsc=false&page=0&size=10&foodTypes=%ED%95%9C%EC%8B%9D&foodTypes=%EC%A4%91%EC%8B%9D HTTP/1.1
Authorization: Bearer jwt-token
X-CSRF-TOKEN: vL2JyxXCDmvmn_vDy4TtDjbFOpd4xI47eExWekBWoTCP3DqV3o7r-SP1a1nL_c_xqanZb1L1F_UZ9uoWGio0TyMzmQDqv16l
Host: localhost:8080
| Name | Description |
|---|---|
|
JWT 토큰 |
| Parameter | Description | Required |
|---|---|---|
|
검색 키워드 |
false |
|
주문 상태 필터 (쉼표로 구분) |
false |
|
시작 날짜 (yyyy-MM-dd) |
false |
|
종료 날짜 (yyyy-MM-dd) |
false |
|
오름차순 정렬 여부 (기본값: false) |
false |
|
페이지 번호 |
false |
|
페이지 크기 |
false |
|
정렬기준 (기본값: 생성일자) |
false |
|
카테고리 필터 (쉼표로 구분) |
false |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 1040
{
"code" : 200,
"status" : "OK",
"message" : "성공적으로 처리되었습니다.",
"data" : {
"content" : [ {
"orderId" : "550e8400-e29b-41d4-a716-446655440000",
"restaurantId" : "550e8400-e29b-41d4-a716-446655440002",
"restaurantName" : "맛있는 치킨",
"foodType" : "한식",
"menuName" : "후라이드 치킨",
"orderStatus" : "PENDING",
"orderType" : "ONLINE",
"createdAt" : "2025-02-25T01:33:29.608064",
"updatedAt" : "2025-02-25T01:33:29.60807"
} ],
"pageable" : {
"pageNumber" : 0,
"pageSize" : 10,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"offset" : 0,
"paged" : true,
"unpaged" : false
},
"last" : true,
"totalPages" : 1,
"totalElements" : 1,
"size" : 10,
"number" : 0,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"first" : true,
"numberOfElements" : 1,
"empty" : false
}
}
| Path | Type | Description |
|---|---|---|
|
|
응답 코드 |
|
|
응답 상태 |
|
|
응답 메시지 |
|
|
주문 목록 |
|
|
주문 ID |
|
|
음식점 ID |
|
|
음식점 이름 |
|
|
식당 카테고리 |
|
|
메뉴 이름 |
|
|
주문 상태 |
|
|
주문 타입 |
|
|
주문 생성 시간 |
|
|
주문 수정 시간 |
|
|
페이지 정보 |
|
|
정렬 정보 |
|
|
정렬이 비어있는지 여부 |
|
|
정렬 적용 여부 |
|
|
정렬 미적용 여부 |
|
|
페이지 오프셋 |
|
|
페이지 번호 |
|
|
페이지 크기 |
|
|
페이징 여부 |
|
|
페이징 미적용 여부 |
|
|
마지막 페이지 여부 |
|
|
전체 페이지 수 |
|
|
전체 요소 수 |
|
|
페이지 크기 |
|
|
현재 페이지 번호 |
|
|
정렬 정보 |
|
|
정렬이 비어있는지 여부 |
|
|
정렬 적용 여부 |
|
|
정렬 미적용 여부 |
|
|
첫 페이지 여부 |
|
|
현재 페이지 요소 수 |
|
|
페이지가 비어있는지 여부 |
식당의 주문 내역 조회
GET /api/orders/restaurant?keyword=%EC%B9%98%ED%82%A8&statuses=PAID&startDate=2025-02-14&endDate=2025-02-21&isAsc=false&page=0&size=10&restaurantId=550e8400-e29b-41d4-a716-446655440002 HTTP/1.1
Authorization: Bearer jwt-token
X-CSRF-TOKEN: vkzYwR5e9LIShBcqopXWECa4Z_z1kXBM5XgvV898CIBCOoKP2i7tpyw4ldc_tidJwbjickCLSp2ToUlh1kBJMfpOOLkhXLC8
Host: localhost:8080
| Name | Description |
|---|---|
|
JWT 토큰 |
| Parameter | Description | Required |
|---|---|---|
|
검색 키워드 |
false |
|
주문 상태 필터 (쉼표로 구분) |
false |
|
시작 날짜 (yyyy-MM-dd) |
false |
|
종료 날짜 (yyyy-MM-dd) |
false |
|
오름차순 정렬 여부 (기본값: false) |
false |
|
페이지 번호 |
false |
|
페이지 크기 |
false |
|
정렬기준 (기본값: 생성일자) |
false |
|
레스토랑 ID |
true |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 1041
{
"code" : 200,
"status" : "OK",
"message" : "성공적으로 처리되었습니다.",
"data" : {
"content" : [ {
"orderId" : "550e8400-e29b-41d4-a716-446655440000",
"restaurantId" : "550e8400-e29b-41d4-a716-446655440002",
"restaurantName" : "맛있는 치킨",
"foodType" : "한식",
"menuName" : "후라이드 치킨",
"orderStatus" : "PENDING",
"orderType" : "ONLINE",
"createdAt" : "2025-02-25T01:33:29.675488",
"updatedAt" : "2025-02-25T01:33:29.675492"
} ],
"pageable" : {
"pageNumber" : 0,
"pageSize" : 10,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"offset" : 0,
"paged" : true,
"unpaged" : false
},
"last" : true,
"totalPages" : 1,
"totalElements" : 1,
"size" : 10,
"number" : 0,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"first" : true,
"numberOfElements" : 1,
"empty" : false
}
}
| Path | Type | Description |
|---|---|---|
|
|
응답 코드 |
|
|
응답 상태 |
|
|
응답 메시지 |
|
|
주문 목록 |
|
|
주문 ID |
|
|
음식점 ID |
|
|
음식점 이름 |
|
|
식당 카테고리 |
|
|
메뉴 이름 |
|
|
주문 상태 |
|
|
주문 타입 |
|
|
주문 생성 시간 |
|
|
주문 수정 시간 |
|
|
페이지 정보 |
|
|
정렬 정보 |
|
|
정렬이 비어있는지 여부 |
|
|
정렬 적용 여부 |
|
|
정렬 미적용 여부 |
|
|
페이지 오프셋 |
|
|
페이지 번호 |
|
|
페이지 크기 |
|
|
페이징 여부 |
|
|
페이징 미적용 여부 |
|
|
마지막 페이지 여부 |
|
|
전체 페이지 수 |
|
|
전체 요소 수 |
|
|
페이지 크기 |
|
|
현재 페이지 번호 |
|
|
정렬 정보 |
|
|
정렬이 비어있는지 여부 |
|
|
정렬 적용 여부 |
|
|
정렬 미적용 여부 |
|
|
첫 페이지 여부 |
|
|
현재 페이지 요소 수 |
|
|
페이지가 비어있는지 여부 |
주문 취소
PATCH /api/orders/550e8400-e29b-41d4-a716-446655440000/cancel HTTP/1.1
Authorization: Bearer jwt-token
X-CSRF-TOKEN: IbtVl8uDGSLi0bVFM6YwAYx5dlBwATaNg6tXH5PNuydDyl3uFNpgoP62f0TP44UgUIsEObxMWzFDOFKgup9jfPD7jBNz-DuP
Host: localhost:8080
Content-Type: application/x-www-form-urlencoded
| Name | Description |
|---|---|
|
JWT 토큰 |
| Parameter | Description |
|---|---|
|
주문 ID |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 1061
{
"code" : 200,
"status" : "OK",
"message" : "성공적으로 처리되었습니다.",
"data" : {
"orderId" : "550e8400-e29b-41d4-a716-446655440000",
"orderStatus" : "CANCELED",
"quantity" : 2,
"orderRequest" : "양념 많이 주세요",
"orderType" : "ONLINE",
"addressInfo" : {
"userAddressId" : "550e8400-e29b-41d4-a716-446655440003",
"address" : "서울시 강남구 테헤란로 123",
"detail" : "101동 1001호",
"defaultAddress" : false
},
"orderedAt" : "2025-02-25T01:33:29.561409",
"updatedAt" : "2025-02-25T01:33:29.561415",
"restaurantId" : "550e8400-e29b-41d4-a716-446655440002",
"restaurantName" : "맛있는 치킨",
"menuName" : "후라이드 치킨",
"menuPrice" : 18000,
"totalPrice" : 36000,
"paymentStatus" : "REFUNDED",
"paymentType" : "CREDIT_CARD",
"externalPaymentId" : "550e8400-e29b-41d4-a716-446655440004",
"paidAt" : "2025-02-25T01:33:29.561431",
"refundedAt" : "2025-02-25T01:33:29.561449",
"createdBy" : "testuser"
}
}
| Path | Type | Description |
|---|---|---|
|
|
응답 코드 |
|
|
응답 상태 |
|
|
응답 메시지 |
|
|
주문 ID |
|
|
주문 상태 |
|
|
주문 수량 |
|
|
주문 요청사항 |
|
|
주문 타입 |
|
|
주소 ID |
|
|
주소 |
|
|
상세 주소 |
|
|
기본 배송지 여부 |
|
|
주문 시간 |
|
|
주문 업데이트 시간 |
|
|
음식점 ID |
|
|
음식점 이름 |
|
|
메뉴 이름 |
|
|
메뉴 가격 |
|
|
총 주문 금액 |
|
|
결제 상태 |
|
|
결제 방식 |
|
|
외부 결제 ID |
|
|
결제 시간 |
|
|
주문 생성자 |
|
|
주문 상태(CANCELLED) |
|
|
결제 상태(REFUNDED) |
|
|
환불 시간 |
주문 삭제
DELETE /api/orders/550e8400-e29b-41d4-a716-446655440000 HTTP/1.1
Authorization: Bearer jwt-token
X-CSRF-TOKEN: FixkqfmXmvCQpZNyU-SNfqnqzhAP2r-fi91cVZqLwjMgm9SpcE0Az8qgosC9k_VBa8m5SM2L4yk77tyyuu5tbK-5-goTquaZ
Host: localhost:8080
| Name | Description |
|---|---|
|
JWT 토큰 |
| Parameter | Description |
|---|---|
|
주문 ID |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 110
{
"code" : 200,
"status" : "OK",
"message" : "성공적으로 처리되었습니다.",
"data" : null
}
| Path | Type | Description |
|---|---|---|
|
|
응답 코드 |
|
|
응답 메시지 |
|
|
응답 상태 |
|
|
데이터 없음 |
리뷰
리뷰 생성
POST /api/reviews HTTP/1.1
Content-Type: application/json
Authorization: Bearer jwt-token
Content-Length: 187
X-CSRF-TOKEN: m5SV_UJaloUuE_rJqQ1ANp2pJUifSrnA-FEnd8FrILFoKINn_fGjyCM8ouQDd575yyB0AKWaCCmseIjtmjNET_hbEoMJTecB
Host: localhost:8080
{
"orderId" : "550e8400-e29b-41d4-a716-446655440000",
"title" : "정말 맛있어요!",
"content" : "배달도 빠르고, 양도많아요! 또 시켜먹을게요~",
"rating" : 5
}
| Name | Description |
|---|---|
|
JWT 토큰 |
{
"orderId" : "550e8400-e29b-41d4-a716-446655440000",
"title" : "정말 맛있어요!",
"content" : "배달도 빠르고, 양도많아요! 또 시켜먹을게요~",
"rating" : 5
}
HTTP/1.1 201 Created
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 662
{
"code" : 201,
"status" : "Created",
"message" : "성공적으로 처리되었습니다.",
"data" : {
"reviewId" : "550e8400-e29b-41d4-a716-446655440003",
"orderId" : "550e8400-e29b-41d4-a716-446655440000",
"menuId" : "550e8400-e29b-41d4-a716-446655440001",
"restaurantId" : "550e8400-e29b-41d4-a716-446655440002",
"title" : "정말 맛있어요!",
"content" : "배달도 빠르고, 양도많아요! 또 시켜먹을게요~",
"rating" : 5,
"menuName" : "후라이드 치킨",
"restaurantName" : "후라이드가 맛있는 치킨 집",
"createdBy" : "testuser",
"createdAt" : "2025-02-25T01:33:35.827666"
}
}
| Path | Type | Description |
|---|---|---|
|
|
응답 코드 |
|
|
응답 상태 |
|
|
응답 메시지 |
|
|
리뷰 ID |
|
|
주문 ID |
|
|
메뉴 ID |
|
|
가게 ID |
|
|
리뷰 제목 |
|
|
리뷰 내용 |
|
|
별점 |
|
|
메뉴 이름 |
|
|
가게 이름 |
|
|
리뷰 생성 시간 |
|
|
리뷰 생성자 |
리뷰 전체 조회
GET /api/reviews?keyword=%EC%B9%98%ED%82%A8&startDate=2025-02-14&endDate=2025-02-21&isAsc=false&page=0&size=10 HTTP/1.1
Authorization: Bearer jwt-token
X-CSRF-TOKEN: iEH9tr_4dRhlS8wb-kBBiJq2G5jWRFoinaDvp-GhFK-EC_mJvSWej4rBF3tIfK56zm11sP-HNqC1dWoPpMbektGYJcyyOsHs
Host: localhost:8080
| Name | Description |
|---|---|
|
JWT 토큰 |
| Parameter | Description | Required |
|---|---|---|
|
검색 키워드 |
false |
|
시작 날짜 (yyyy-MM-dd) |
false |
|
종료 날짜 (yyyy-MM-dd) |
false |
|
오름차순 정렬 여부 (기본값: false) |
false |
|
페이지 번호 |
false |
|
페이지 크기 |
false |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 1210
{
"code" : 200,
"status" : "OK",
"message" : "성공적으로 처리되었습니다.",
"data" : {
"content" : [ {
"reviewId" : "550e8400-e29b-41d4-a716-446655440000",
"orderId" : "550e8400-e29b-41d4-a716-446655440000",
"menuId" : "550e8400-e29b-41d4-a716-446655440001",
"restaurantId" : "550e8400-e29b-41d4-a716-446655440002",
"title" : "정말 맛있어요!",
"content" : "배달도 빠르고, 양도많아요! 또 시켜먹을게요~",
"rating" : 5,
"menuName" : "후라이드 치킨",
"restaurantName" : "후라이드가 맛있는 치킨 집",
"createdBy" : "testuser",
"createdAt" : "2025-02-25T01:33:35.763095"
} ],
"pageable" : {
"pageNumber" : 0,
"pageSize" : 10,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"offset" : 0,
"paged" : true,
"unpaged" : false
},
"last" : true,
"totalPages" : 1,
"totalElements" : 1,
"size" : 10,
"number" : 0,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"first" : true,
"numberOfElements" : 1,
"empty" : false
}
}
| Path | Type | Description |
|---|---|---|
|
|
응답 코드 |
|
|
응답 상태 |
|
|
응답 메시지 |
|
|
리뷰 목록 |
|
|
리뷰 ID |
|
|
주문 ID |
|
|
메뉴 ID |
|
|
음식점 ID |
|
|
리뷰 제목 |
|
|
리뷰 내용 |
|
|
별점 |
|
|
메뉴 이름 |
|
|
음식점 이름 |
|
|
리뷰 작성자 |
|
|
리뷰 작성 시간 |
|
|
페이지 정보 |
|
|
정렬 정보 |
|
|
정렬이 비어있는지 여부 |
|
|
정렬 적용 여부 |
|
|
정렬 미적용 여부 |
|
|
페이지 오프셋 |
|
|
페이지 번호 |
|
|
페이지 크기 |
|
|
페이징 여부 |
|
|
페이징 미적용 여부 |
|
|
마지막 페이지 여부 |
|
|
전체 페이지 수 |
|
|
전체 요소 수 |
|
|
페이지 크기 |
|
|
현재 페이지 번호 |
|
|
정렬 정보 |
|
|
정렬이 비어있는지 여부 |
|
|
정렬 적용 여부 |
|
|
정렬 미적용 여부 |
|
|
첫 페이지 여부 |
|
|
현재 페이지 요소 수 |
|
|
페이지가 비어있는지 여부 |
리뷰 단건 조회
GET /api/reviews/550e8400-e29b-41d4-a716-446655440003 HTTP/1.1
Authorization: Bearer jwt-token
X-CSRF-TOKEN: JeJaK05l4aLua2i8PhX8h904uwSvW-jOZQ_6JYMtQz09TAWoQNBtG38AhZvDWFyFXzjI4u5alj2fPYnjAWvDQ7VMdlwOfjzM
Host: localhost:8080
| Name | Description |
|---|---|
|
JWT 토큰 |
| Parameter | Description |
|---|---|
|
리뷰 ID |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 657
{
"code" : 200,
"status" : "OK",
"message" : "성공적으로 처리되었습니다.",
"data" : {
"reviewId" : "550e8400-e29b-41d4-a716-446655440003",
"orderId" : "550e8400-e29b-41d4-a716-446655440000",
"menuId" : "550e8400-e29b-41d4-a716-446655440001",
"restaurantId" : "550e8400-e29b-41d4-a716-446655440002",
"title" : "정말 맛있어요!",
"content" : "배달도 빠르고, 양도많아요! 또 시켜먹을게요~",
"rating" : 5,
"menuName" : "후라이드 치킨",
"restaurantName" : "후라이드가 맛있는 치킨 집",
"createdBy" : "testuser",
"createdAt" : "2025-02-25T01:33:35.818473"
}
}
| Path | Type | Description |
|---|---|---|
|
|
응답 코드 |
|
|
응답 상태 |
|
|
응답 메시지 |
|
|
리뷰 ID |
|
|
주문 ID |
|
|
메뉴 ID |
|
|
가게 ID |
|
|
리뷰 제목 |
|
|
리뷰 내용 |
|
|
별점 |
|
|
메뉴 이름 |
|
|
가게 이름 |
|
|
리뷰 생성 시간 |
|
|
리뷰 생성자 |
가게에 달린 리뷰 조회
GET /api/reviews/restaurant?keyword=%EC%B9%98%ED%82%A8&startDate=2025-02-14&endDate=2025-02-21&isAsc=false&page=0&size=10&restaurantId=550e8400-e29b-41d4-a716-446655440002 HTTP/1.1
Authorization: Bearer jwt-token
X-CSRF-TOKEN: ticLcpOA55cx7SAhh6gj377qlJTsJkNC5-ritURN25QIIRkrgxIyE6e01fIcjBVAsYUX7Yzaua3fRyJvg4mB13YrufBsEyAa
Host: localhost:8080
| Name | Description |
|---|---|
|
JWT 토큰 |
| Parameter | Description | Required |
|---|---|---|
|
검색 키워드 |
false |
|
시작 날짜 (yyyy-MM-dd) |
false |
|
종료 날짜 (yyyy-MM-dd) |
false |
|
오름차순 정렬 여부 (기본값: false) |
false |
|
페이지 번호 |
false |
|
페이지 크기 |
false |
|
레스토랑 ID |
true |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 1209
{
"code" : 200,
"status" : "OK",
"message" : "성공적으로 처리되었습니다.",
"data" : {
"content" : [ {
"reviewId" : "550e8400-e29b-41d4-a716-446655440000",
"orderId" : "550e8400-e29b-41d4-a716-446655440000",
"menuId" : "550e8400-e29b-41d4-a716-446655440001",
"restaurantId" : "550e8400-e29b-41d4-a716-446655440002",
"title" : "정말 맛있어요!",
"content" : "배달도 빠르고, 양도많아요! 또 시켜먹을게요~",
"rating" : 5,
"menuName" : "후라이드 치킨",
"restaurantName" : "후라이드가 맛있는 치킨 집",
"createdBy" : "testuser",
"createdAt" : "2025-02-25T01:33:35.80526"
} ],
"pageable" : {
"pageNumber" : 0,
"pageSize" : 10,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"offset" : 0,
"paged" : true,
"unpaged" : false
},
"last" : true,
"totalPages" : 1,
"totalElements" : 1,
"size" : 10,
"number" : 0,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"first" : true,
"numberOfElements" : 1,
"empty" : false
}
}
| Path | Type | Description |
|---|---|---|
|
|
응답 코드 |
|
|
응답 상태 |
|
|
응답 메시지 |
|
|
리뷰 목록 |
|
|
리뷰 ID |
|
|
주문 ID |
|
|
메뉴 ID |
|
|
음식점 ID |
|
|
리뷰 제목 |
|
|
리뷰 내용 |
|
|
별점 |
|
|
메뉴 이름 |
|
|
음식점 이름 |
|
|
리뷰 작성자 |
|
|
리뷰 작성 시간 |
|
|
페이지 정보 |
|
|
정렬 정보 |
|
|
정렬이 비어있는지 여부 |
|
|
정렬 적용 여부 |
|
|
정렬 미적용 여부 |
|
|
페이지 오프셋 |
|
|
페이지 번호 |
|
|
페이지 크기 |
|
|
페이징 여부 |
|
|
페이징 미적용 여부 |
|
|
마지막 페이지 여부 |
|
|
전체 페이지 수 |
|
|
전체 요소 수 |
|
|
페이지 크기 |
|
|
현재 페이지 번호 |
|
|
정렬 정보 |
|
|
정렬이 비어있는지 여부 |
|
|
정렬 적용 여부 |
|
|
정렬 미적용 여부 |
|
|
첫 페이지 여부 |
|
|
현재 페이지 요소 수 |
|
|
페이지가 비어있는지 여부 |
리뷰 수정
PUT /api/reviews/550e8400-e29b-41d4-a716-446655440003 HTTP/1.1
Content-Type: application/json
Authorization: Bearer jwt-token
Content-Length: 131
X-CSRF-TOKEN: nw7CSAJBsh99OE_POux6xlTmn8QZ9utBkMw4w8NMmfwcLGMo_G3wLTAi0HtQCCupC8FO822EsqUqldNs9agA8qYvr80tH1JK
Host: localhost:8080
{
"title" : "이 집 별로입니다!",
"content" : "먹다가 머리카락나와서 리뷰 수정합니다!",
"rating" : 1
}
| Name | Description |
|---|---|
|
JWT 토큰 |
| Parameter | Description |
|---|---|
|
리뷰 ID |
{
"title" : "이 집 별로입니다!",
"content" : "먹다가 머리카락나와서 리뷰 수정합니다!",
"rating" : 1
}
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 657
{
"code" : 200,
"status" : "OK",
"message" : "성공적으로 처리되었습니다.",
"data" : {
"reviewId" : "550e8400-e29b-41d4-a716-446655440003",
"orderId" : "550e8400-e29b-41d4-a716-446655440000",
"menuId" : "550e8400-e29b-41d4-a716-446655440001",
"restaurantId" : "550e8400-e29b-41d4-a716-446655440002",
"title" : "정말 맛있어요!",
"content" : "배달도 빠르고, 양도많아요! 또 시켜먹을게요~",
"rating" : 5,
"menuName" : "후라이드 치킨",
"restaurantName" : "후라이드가 맛있는 치킨 집",
"createdBy" : "testuser",
"createdAt" : "2025-02-25T01:33:35.781097"
}
}
| Path | Type | Description |
|---|---|---|
|
|
응답 코드 |
|
|
응답 상태 |
|
|
응답 메시지 |
|
|
리뷰 ID |
|
|
주문 ID |
|
|
메뉴 ID |
|
|
가게 ID |
|
|
리뷰 제목 |
|
|
리뷰 내용 |
|
|
별점 |
|
|
메뉴 이름 |
|
|
가게 이름 |
|
|
리뷰 생성 시간 |
|
|
리뷰 생성자 |
리뷰 삭제
DELETE /api/reviews/550e8400-e29b-41d4-a716-446655440003 HTTP/1.1
Authorization: Bearer jwt-token
X-CSRF-TOKEN: 0OyE8mCeR6pRUelIoX6M2k-WOrj7So6Vd86elgMAvikev82t4NXixQT9JMh8YdhwmVO463f0F9nIK724FPqroWA320t82v_O
Host: localhost:8080
| Name | Description |
|---|---|
|
JWT 토큰 |
| Parameter | Description |
|---|---|
|
리뷰 ID |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 110
{
"code" : 200,
"status" : "OK",
"message" : "성공적으로 처리되었습니다.",
"data" : null
}
| Path | Type | Description |
|---|---|---|
|
|
응답 코드 |
|
|
응답 메시지 |
|
|
응답 상태 |
|
|
데이터 없음 |
배송
유저 배송지 생성
POST /api/user/address HTTP/1.1
Content-Type: application/json
Authorization: Bearer jwt-token
Content-Length: 89
X-CSRF-TOKEN: dPbRkfI5fdLh82S2m2DDo5XBRdJ3XJH-SY0_IctH9DByRjiCFZS0psNaS-DMw1aDr033wKL4aLARP6HTL7RcEa1ylVZHI1qx
Host: localhost:8080
{
"address" : "대구 서구 북비산로 생성34",
"detail" : "522-13번지 3층"
}
| Name | Description |
|---|---|
|
JWT 토큰 |
| Path | Type | Description | Required |
|---|---|---|---|
|
|
주소지 |
true |
|
|
상세 주소 |
true |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 293
{
"code" : 200,
"status" : "OK",
"message" : "성공적으로 처리되었습니다.",
"data" : {
"userAddressId" : "550e8400-e29b-41d4-a716-446655440003",
"address" : "대구 서구 북비산로 생성34",
"detail" : "522-13번지 3층",
"defaultAddress" : false
}
}
| Path | Type | Description |
|---|---|---|
|
|
응답 코드 |
|
|
응답 상태 |
|
|
응답 메시지 |
|
|
주소지 ID |
|
|
주소지 |
|
|
상세주소 |
|
|
대표주소지설정 |
유저 배송지 조회
GET /api/user/address HTTP/1.1
Authorization: Bearer jwt-token
X-CSRF-TOKEN: XhiS01eSmmaZdMzhtTlD8rSOgIjo3NxGsbyULoK5FdKvwoYrPSyn5Gbz-FW0Ea2E0BR3ltborbDd6exr1NnwHbOAILac--Uf
Host: localhost:8080
| Name | Description |
|---|---|
|
JWT 토큰 |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 830
{
"code" : 200,
"status" : "OK",
"message" : "성공적으로 처리되었습니다.",
"data" : {
"content" : [ {
"userAddressId" : "550e8400-e29b-41d4-a716-446655440003",
"address" : "서울시 강남구 테헤란로 123",
"detail" : "101동 1001호",
"defaultAddress" : false
} ],
"pageable" : {
"pageNumber" : 0,
"pageSize" : 10,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"offset" : 0,
"paged" : true,
"unpaged" : false
},
"last" : true,
"totalPages" : 1,
"totalElements" : 1,
"size" : 10,
"number" : 0,
"sort" : {
"empty" : true,
"sorted" : false,
"unsorted" : true
},
"first" : true,
"numberOfElements" : 1,
"empty" : false
}
}
| Path | Type | Description |
|---|---|---|
|
|
응답 코드 |
|
|
응답 상태 |
|
|
응답 메시지 |
|
|
주소지 ID |
|
|
주소지 |
|
|
상세주소 |
|
|
대표주소지설정 |
|
|
페이지 정보 |
|
|
정렬 정보 |
|
|
정렬이 비어있는지 여부 |
|
|
정렬 적용 여부 |
|
|
정렬 미적용 여부 |
|
|
페이지 오프셋 |
|
|
페이지 번호 |
|
|
페이지 크기 |
|
|
페이징 여부 |
|
|
페이징 미적용 여부 |
|
|
마지막 페이지 여부 |
|
|
전체 페이지 수 |
|
|
전체 요소 수 |
|
|
페이지 크기 |
|
|
현재 페이지 번호 |
|
|
정렬 정보 |
|
|
정렬이 비어있는지 여부 |
|
|
정렬 적용 여부 |
|
|
정렬 미적용 여부 |
|
|
첫 페이지 여부 |
|
|
현재 페이지 요소 수 |
|
|
페이지가 비어있는지 여부 |
유저 배송지 수정
PUT /api/user/address/550e8400-e29b-41d4-a716-446655440003 HTTP/1.1
Content-Type: application/json
Authorization: Bearer jwt-token
Content-Length: 89
X-CSRF-TOKEN: Quq2zPSpRH3fGfOF_nQiqp_eoCpeyZHk29nKiFoe7ZNR1UDIIN2BqsOefEnyK8C8zFkWnaa_jUhpr_TJ6L-o7m4siaBh5CGu
Host: localhost:8080
{
"address" : "대구 서구 북비산로 생성34",
"detail" : "522-13번지 3층"
}
| Name | Description |
|---|---|
|
JWT 토큰 |
| Parameter | Description |
|---|---|
|
배송지 주소 ID |
| Path | Type | Description | Required |
|---|---|---|---|
|
|
주소지 |
true |
|
|
상세 주소 |
true |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 293
{
"code" : 200,
"status" : "OK",
"message" : "성공적으로 처리되었습니다.",
"data" : {
"userAddressId" : "550e8400-e29b-41d4-a716-446655440003",
"address" : "대구 서구 북비산로 생성34",
"detail" : "522-13번지 3층",
"defaultAddress" : false
}
}
| Path | Type | Description |
|---|---|---|
|
|
응답 코드 |
|
|
응답 상태 |
|
|
응답 메시지 |
|
|
주소지 ID |
|
|
주소지 |
|
|
상세주소 |
|
|
대표주소지설정 |
유저 배송지 삭제
PUT /api/user/address/550e8400-e29b-41d4-a716-446655440003/default HTTP/1.1
Authorization: Bearer jwt-token
X-CSRF-TOKEN: bDkptLzZeY7e17KqtcWE0NUfJwIGebEvMN1oo4PKTICS4x0RVQEb1d_sTOrz4IrJgOiw4e17Cjo1QIICAOhcmuCpdbej0Hsi
Host: localhost:8080
Content-Type: application/x-www-form-urlencoded
| Name | Description |
|---|---|
|
JWT 토큰 |
| Parameter | Description |
|---|---|
|
배송지 주소 ID |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 293
{
"code" : 200,
"status" : "OK",
"message" : "성공적으로 처리되었습니다.",
"data" : {
"userAddressId" : "550e8400-e29b-41d4-a716-446655440003",
"address" : "대구 서구 북비산로 생성34",
"detail" : "522-13번지 3층",
"defaultAddress" : false
}
}
| Path | Type | Description |
|---|---|---|
|
|
응답 코드 |
|
|
응답 상태 |
|
|
응답 메시지 |
|
|
주소지 ID |
|
|
주소지 |
|
|
상세주소 |
|
|
대표주소지설정 |
카테고리
카테고리 생성
POST /api/categories HTTP/1.1
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZGFkMTIzIiwiQXV0aG9yaXphdGlvbiI6Ik1BU1RFUiIsImV4cCI6MTc0MDQxNTcxMiwiaWF0IjoxNzQwNDE0ODEyfQ.7IpLC-gspoNm1zM3k5RThZ1qPBn43m2fITgOQ8r1o4c
Content-Length: 27
X-CSRF-TOKEN: 3T0quBZ_locHJjRaMUarcrrm3_zSNjdcchhyLnOwMir84KxGuwgfiyUc8uUqFAdoCGufS9_e8sW3BlZxFytDSEWGUxydhp8i
Host: localhost:8080
{
"foodType" : "간식"
}
| Name | Description |
|---|---|
|
JWT 토큰 |
| Path | Type | Description | Required |
|---|---|---|---|
|
|
음식 카테고리 이름 |
true |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 413
{
"code" : 200,
"status" : "success",
"message" : "성공적으로 처리되었습니다.",
"data" : {
"createdAt" : "2025-02-25T01:33:33.049572",
"createdBy" : "adad123",
"updatedAt" : "2025-02-25T01:33:33.049572",
"updatedBy" : null,
"deletedAt" : null,
"deletedBy" : null,
"id" : "bdae91e2-a8b9-409d-9dac-a58f02c79518",
"foodType" : "간식",
"deleted" : false
}
}
| Path | Type | Description |
|---|---|---|
|
|
응답 코드 |
|
|
응답 상태 |
|
|
응답 메시지 |
|
|
음식 카테고리 ID |
|
|
음식 카테고리 이름 |
|
|
음식 카테고리 삭제 여부 |
|
|
음식 카테고리 생성시간 |
|
|
음식 카테고리 생성자 |
|
|
음식 카테고리 수정시간 |
|
|
음식 카테고리 수정자 |
|
|
음식 카테고리 삭제시간 |
|
|
음식 카테고리 삭제자 |
카테고리 수정
PUT /api/categories/660e8400-e29b-41d4-a716-446655440003 HTTP/1.1
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZGFkMTIzIiwiQXV0aG9yaXphdGlvbiI6Ik1BU1RFUiIsImV4cCI6MTc0MDQxNTcxMiwiaWF0IjoxNzQwNDE0ODEyfQ.7IpLC-gspoNm1zM3k5RThZ1qPBn43m2fITgOQ8r1o4c
Content-Length: 27
X-CSRF-TOKEN: lCwIz_ZhfgE8xnoN2Nyzwc87YTjCP-mJvzdA68Oo_ADIc7UMpkls-pBVTTIR90M47fGH860LTFn7C9-khwck2veenTDwEtQ6
Host: localhost:8080
{
"foodType" : "후식"
}
| Name | Description |
|---|---|
|
JWT 토큰 |
| Parameter | Description |
|---|---|
|
음식 카테고리 ID |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 389
{
"code" : 200,
"status" : "success",
"message" : "성공적으로 처리되었습니다.",
"data" : {
"createdAt" : null,
"createdBy" : null,
"updatedAt" : "2025-02-25T01:33:32.995965",
"updatedBy" : "adad123",
"deletedAt" : null,
"deletedBy" : null,
"id" : "660e8400-e29b-41d4-a716-446655440003",
"foodType" : "후식",
"deleted" : false
}
}
| Path | Type | Description |
|---|---|---|
|
|
응답 코드 |
|
|
응답 상태 |
|
|
응답 메시지 |
|
|
음식 카테고리 ID |
|
|
음식 카테고리 이름 |
|
|
음식 카테고리 삭제 여부 |
|
|
음식 카테고리 생성시간 |
|
|
음식 카테고리 생성자 |
|
|
음식 카테고리 수정시간 |
|
|
음식 카테고리 수정자 |
|
|
음식 카테고리 삭제시간 |
|
|
음식 카테고리 삭제자 |
카테고리 삭제
DELETE /api/categories/660e8400-e29b-41d4-a716-446655440003 HTTP/1.1
Content-Type: application/json
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZGFkMTIzIiwiQXV0aG9yaXphdGlvbiI6Ik1BU1RFUiIsImV4cCI6MTc0MDQxNTcxMiwiaWF0IjoxNzQwNDE0ODEyfQ.7IpLC-gspoNm1zM3k5RThZ1qPBn43m2fITgOQ8r1o4c
X-CSRF-TOKEN: ItvX2_hopHxn15l4MvT7J6b9sagoaMGNvRtyhVecFjBWvu_ARr21v55bkE1K4PhACtnPEsTPnMkeWaWgiy9H5DL9Lwky2I2h
Host: localhost:8080
| Name | Description |
|---|---|
|
JWT 토큰 |
| Parameter | Description |
|---|---|
|
음식 카테고리 ID |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 388
{
"code" : 200,
"status" : "success",
"message" : "성공적으로 처리되었습니다.",
"data" : {
"createdAt" : null,
"createdBy" : null,
"updatedAt" : null,
"updatedBy" : null,
"deletedAt" : "2025-02-25T01:33:33.108954",
"deletedBy" : "adad123",
"id" : "660e8400-e29b-41d4-a716-446655440003",
"foodType" : "카페",
"deleted" : true
}
}
| Path | Type | Description |
|---|---|---|
|
|
응답 코드 |
|
|
응답 상태 |
|
|
응답 메시지 |
|
|
음식 카테고리 ID |
|
|
음식 카테고리 이름 |
|
|
음식 카테고리 삭제 여부 |
|
|
음식 카테고리 생성시간 |
|
|
음식 카테고리 생성자 |
|
|
음식 카테고리 수정시간 |
|
|
음식 카테고리 수정자 |
|
|
음식 카테고리 삭제시간 |
|
|
음식 카테고리 삭제자 |
식당
식당 정보 생성
POST /api/restaurants HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZGFkMTIzIiwiQXV0aG9yaXphdGlvbiI6Ik1BU1RFUiIsImV4cCI6MTc0MDQxNTcxNSwiaWF0IjoxNzQwNDE0ODE1fQ.XfGvmsqryCH_dgT4dByQD8LZnLRYiUTyg6NgENbC5Kc
Content-Length: 213
Host: localhost:8080
{
"name" : "돈가스 와와",
"ownerId" : "user2",
"category" : "880e8400-e29b-41d4-a716-446655440005",
"legalCode" : "11110",
"content" : "맛있는 돈가스집!",
"operatingHours" : "10:00~17:00"
}
| Name | Description |
|---|---|
|
JWT 토큰 |
| Path | Type | Description | Required |
|---|---|---|---|
|
|
음식점 이름 |
true |
|
|
음식점 사장 ID |
true |
|
|
음식점 음식유형 |
true |
|
|
음식점 지역코드 |
true |
|
|
음식점 소개내용 |
true |
|
|
음식점 영업시간 |
true |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 838
{
"code" : 200,
"status" : "success",
"message" : "성공적으로 처리되었습니다.",
"data" : {
"createdAt" : "2025-02-25T01:33:35.01878",
"createdBy" : "adad123",
"updatedAt" : "2025-02-25T01:33:35.01878",
"updatedBy" : null,
"deletedAt" : null,
"deletedBy" : null,
"id" : "ba15eed2-6346-4165-9a76-e20b5d5ba627",
"name" : "돈가스 와와",
"ownerId" : "user2",
"content" : "맛있는 돈가스집!",
"operatingHours" : "10:00~17:00",
"category" : {
"createdAt" : null,
"createdBy" : null,
"updatedAt" : null,
"updatedBy" : null,
"deletedAt" : null,
"deletedBy" : null,
"id" : "880e8400-e29b-41d4-a716-446655440005",
"foodType" : "양식",
"deleted" : false
},
"legalCode" : "11110",
"deleted" : false
}
}
| Path | Type | Description |
|---|---|---|
|
|
응답 코드 |
|
|
응답 상태 |
|
|
응답 메시지 |
|
|
음식점 ID |
|
|
음식점 이름 |
|
|
음식점 사장 ID |
|
|
음식점 카테고리 |
|
|
카테고리 ID |
|
|
음식 카테고리 이름 |
|
|
음식점 지역코드 |
|
|
음식점 소개내용 |
|
|
음식점 영업시간 |
|
|
음식점 삭제 여부 |
|
|
음식점 생성시간 |
|
|
음식점 생성자 |
|
|
음식점 수정시간 |
|
|
음식점 수정자 |
|
|
음식점 삭제시간 |
|
|
음식점 삭제자 |
|
|
음식점 삭제 여부 |
|
|
음식점 생성시간 |
|
|
음식점 생성자 |
|
|
음식점 수정시간 |
|
|
음식점 수정자 |
|
|
음식점 삭제시간 |
|
|
음식점 삭제자 |
|
|
음식점 삭제 여부 |
식당 정보 수정
PUT /api/restaurants/492f5c05-6b9d-4593-9dc7-e500ec99da17 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZGFkMTIzIiwiQXV0aG9yaXphdGlvbiI6Ik1BU1RFUiIsImV4cCI6MTc0MDQxNTcxNSwiaWF0IjoxNzQwNDE0ODE1fQ.XfGvmsqryCH_dgT4dByQD8LZnLRYiUTyg6NgENbC5Kc
Content-Length: 140
Host: localhost:8080
{
"name" : "햄햄버거",
"content" : "햄버거집!",
"category" : "880e8400-e29b-41d4-a716-446655440005",
"legalCode" : "11110"
}
| Name | Description |
|---|---|
|
JWT 토큰 |
| Parameter | Description |
|---|---|
|
음식 카테고리 ID |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 831
{
"code" : 200,
"status" : "success",
"message" : "성공적으로 처리되었습니다.",
"data" : {
"createdAt" : "2025-02-25T01:33:35.173533",
"createdBy" : "adad123",
"updatedAt" : "2025-02-25T01:33:35.192855",
"updatedBy" : "adad123",
"deletedAt" : null,
"deletedBy" : null,
"id" : "492f5c05-6b9d-4593-9dc7-e500ec99da17",
"name" : "햄햄버거",
"ownerId" : "user2",
"content" : "햄버거집!",
"operatingHours" : "10:00~17:00",
"category" : {
"createdAt" : null,
"createdBy" : null,
"updatedAt" : null,
"updatedBy" : null,
"deletedAt" : null,
"deletedBy" : null,
"id" : "880e8400-e29b-41d4-a716-446655440005",
"foodType" : "양식",
"deleted" : false
},
"legalCode" : "11110",
"deleted" : false
}
}
| Path | Type | Description |
|---|---|---|
|
|
응답 코드 |
|
|
응답 상태 |
|
|
응답 메시지 |
|
|
음식점 ID |
|
|
음식점 이름 |
|
|
음식점 사장 ID |
|
|
음식점 카테고리 |
|
|
카테고리 ID |
|
|
음식 카테고리 이름 |
|
|
음식점 지역코드 |
|
|
음식점 소개내용 |
|
|
음식점 영업시간 |
|
|
음식점 삭제 여부 |
|
|
음식점 생성시간 |
|
|
음식점 생성자 |
|
|
음식점 수정시간 |
|
|
음식점 수정자 |
|
|
음식점 삭제시간 |
|
|
음식점 삭제자 |
|
|
음식점 삭제 여부 |
|
|
음식점 생성시간 |
|
|
음식점 생성자 |
|
|
음식점 수정시간 |
|
|
음식점 수정자 |
|
|
음식점 삭제시간 |
|
|
음식점 삭제자 |
|
|
음식점 삭제 여부 |
식당 정보 삭제
DELETE /api/restaurants/eb556bc7-2a77-444e-83e3-71ff91761f2c HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJhZGFkMTIzIiwiQXV0aG9yaXphdGlvbiI6Ik1BU1RFUiIsImV4cCI6MTc0MDQxNTcxNSwiaWF0IjoxNzQwNDE0ODE1fQ.XfGvmsqryCH_dgT4dByQD8LZnLRYiUTyg6NgENbC5Kc
Host: localhost:8080
| Name | Description |
|---|---|
|
JWT 토큰 |
| Parameter | Description |
|---|---|
|
음식점 ID |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 849
{
"code" : 200,
"status" : "success",
"message" : "성공적으로 처리되었습니다.",
"data" : {
"createdAt" : "2025-02-25T01:33:35.119385",
"createdBy" : "adad123",
"updatedAt" : "2025-02-25T01:33:35.135185",
"updatedBy" : null,
"deletedAt" : "2025-02-25T01:33:35.134703",
"deletedBy" : "adad123",
"id" : "eb556bc7-2a77-444e-83e3-71ff91761f2c",
"name" : "가게1",
"ownerId" : "user2",
"content" : "맛있는집!",
"operatingHours" : "10:00~17:00",
"category" : {
"createdAt" : null,
"createdBy" : null,
"updatedAt" : null,
"updatedBy" : null,
"deletedAt" : null,
"deletedBy" : null,
"id" : "880e8400-e29b-41d4-a716-446655440005",
"foodType" : "양식",
"deleted" : false
},
"legalCode" : "11110",
"deleted" : true
}
}
| Path | Type | Description |
|---|---|---|
|
|
응답 코드 |
|
|
응답 상태 |
|
|
응답 메시지 |
|
|
음식점 ID |
|
|
음식점 이름 |
|
|
음식점 사장 ID |
|
|
음식점 카테고리 |
|
|
카테고리 ID |
|
|
음식 카테고리 이름 |
|
|
음식점 지역코드 |
|
|
음식점 소개내용 |
|
|
음식점 영업시간 |
|
|
음식점 삭제 여부 |
|
|
음식점 생성시간 |
|
|
음식점 생성자 |
|
|
음식점 수정시간 |
|
|
음식점 수정자 |
|
|
음식점 삭제시간 |
|
|
음식점 삭제자 |
|
|
음식점 삭제 여부 |
|
|
음식점 생성시간 |
|
|
음식점 생성자 |
|
|
음식점 수정시간 |
|
|
음식점 수정자 |
|
|
음식점 삭제시간 |
|
|
음식점 삭제자 |
|
|
음식점 삭제 여부 |
메뉴
메뉴 생성
POST /api/menus/add HTTP/1.1
Content-Type: application/json
Authorization: Bearer jwt-token
Content-Length: 172
X-CSRF-TOKEN: qd6XDRSO3O1JJ43-Y3W7sQYOMkdXAWuhIsWLBj3ACU5yZqa2n7ulNCft74hkFL7OUViPiWA4HyViYAmMFaSzMFz5a3kRBMLS
Host: localhost:8080
{
"name" : "맛있는 메뉴",
"price" : 15000,
"description" : "매콤달콤한 맛이 일품인 메뉴",
"restaurantId" : "550e8400-e29b-41d4-a716-446655440001"
}
| Name | Description |
|---|---|
|
JWT 토큰 |
| Path | Type | Description | Required |
|---|---|---|---|
|
|
메뉴 이름 |
true |
|
|
메뉴 가격 |
true |
|
|
메뉴 설명 |
true |
|
|
레스토랑 ID |
true |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 306
{
"code" : 200,
"status" : "success",
"message" : "성공적으로 처리되었습니다.",
"data" : {
"id" : "550e8400-e29b-41d4-a716-446655440000",
"name" : "맛있는 메뉴",
"price" : 15000,
"description" : "매콤달콤한 맛이 일품인 메뉴",
"deleted" : false
}
}
| Path | Type | Description |
|---|---|---|
|
|
응답 코드 |
|
|
응답 상태 |
|
|
응답 메시지 |
|
|
메뉴 ID |
|
|
메뉴 이름 |
|
|
메뉴 가격 |
|
|
메뉴 설명 |
|
|
삭제 여부 |
메뉴 단건 조회
GET /api/menus/550e8400-e29b-41d4-a716-446655440000 HTTP/1.1
Authorization: Bearer jwt-token
X-CSRF-TOKEN: eFTf3TzMDtmlvBwZuVmCbqGOZMOcDi9AVoVWJO_BXrVndFLaSTXq7V-tPLuI2n4r2HS2XJPvSaGsb0ptb-MzF93xbo0ER2Xi
Host: localhost:8080
| Name | Description |
|---|---|
|
JWT 토큰 |
| Parameter | Description |
|---|---|
|
메뉴 ID |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 306
{
"code" : 200,
"status" : "success",
"message" : "성공적으로 처리되었습니다.",
"data" : {
"id" : "550e8400-e29b-41d4-a716-446655440000",
"name" : "맛있는 메뉴",
"price" : 15000,
"description" : "매콤달콤한 맛이 일품인 메뉴",
"deleted" : false
}
}
| Path | Type | Description |
|---|---|---|
|
|
응답 코드 |
|
|
응답 상태 |
|
|
응답 메시지 |
|
|
메뉴 ID |
|
|
메뉴 이름 |
|
|
메뉴 가격 |
|
|
메뉴 설명 |
|
|
삭제 여부 |
메뉴 목록 조회
GET /api/menus?page=0&size=10&sortBy=name&isAsc=true HTTP/1.1
Authorization: Bearer jwt-token
X-CSRF-TOKEN: GriiIcjE2N1olqNR_tn91DzRWLtxAI3KQaFvFw_gAaIjjIR1fIqXFvCn4ORFr8VnnPTJsArldYNFN7XnJJVbc27XOJYTubBG
Host: localhost:8080
| Name | Description |
|---|---|
|
JWT 토큰 |
| Parameter | Description | Required |
|---|---|---|
|
페이지 번호 (기본값: 0) |
false |
|
페이지 크기 (기본값: 10) |
false |
|
정렬 기준 (기본값: name) |
false |
|
오름차순 정렬 여부 (기본값: true) |
false |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 498
{
"code" : 200,
"status" : "success",
"message" : "성공적으로 처리되었습니다.",
"data" : [ {
"id" : "550e8400-e29b-41d4-a716-446655440000",
"name" : "맛있는 메뉴",
"price" : 15000,
"description" : "매콤달콤한 맛이 일품인 메뉴",
"deleted" : false
}, {
"id" : "2ce4aad1-7650-46d8-8c66-604575ffeb16",
"name" : "다른 메뉴",
"price" : 12000,
"description" : "달콤한 맛이 일품인 메뉴",
"deleted" : false
} ]
}
| Path | Type | Description |
|---|---|---|
|
|
응답 코드 |
|
|
응답 상태 |
|
|
응답 메시지 |
|
|
메뉴 목록 |
|
|
메뉴 ID |
|
|
메뉴 이름 |
|
|
메뉴 가격 |
|
|
메뉴 설명 |
|
|
삭제 여부 |
메뉴 수정
PATCH /api/menus/550e8400-e29b-41d4-a716-446655440000 HTTP/1.1
Content-Type: application/json
Authorization: Bearer jwt-token
Content-Length: 111
X-CSRF-TOKEN: zR_2UnrcOSMoKtstOU7Cniw40s0r-hr7PN1zX9WyK9UMBRd4rCqXZUzlXRQFHuJOCWP2rhVZ_6xKyy3WWOwRaubTHOU9NHVO
Host: localhost:8080
{
"name" : "새로운 메뉴 이름",
"price" : 15000,
"description" : "맛있는 메뉴 설명 예시"
}
| Name | Description |
|---|---|
|
JWT 토큰 |
| Parameter | Description |
|---|---|
|
메뉴 ID |
| Path | Type | Description | Required |
|---|---|---|---|
|
|
메뉴 이름 |
true |
|
|
메뉴 가격 |
true |
|
|
메뉴 설명 |
true |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 304
{
"code" : 200,
"status" : "success",
"message" : "성공적으로 처리되었습니다.",
"data" : {
"id" : "550e8400-e29b-41d4-a716-446655440000",
"name" : "새로운 메뉴 이름",
"price" : 15000,
"description" : "맛있는 메뉴 설명 예시",
"deleted" : false
}
}
| Path | Type | Description |
|---|---|---|
|
|
응답 코드 |
|
|
응답 상태 |
|
|
응답 메시지 |
|
|
메뉴 ID |
|
|
메뉴 이름 |
|
|
메뉴 가격 |
|
|
메뉴 설명 |
|
|
삭제 여부 |
메뉴 삭제
DELETE /api/menus/550e8400-e29b-41d4-a716-446655440000 HTTP/1.1
Authorization: Bearer jwt-token
X-CSRF-TOKEN: QtsKIdS6nl3-OLcCy6HWMgFkAq-ya90q4jDePvQqhFwIjl6vJ-08Q7KN_W7TXoEy-IziCzkFL5fQU7kH1wC_WJFO4Tpu6mub
Host: localhost:8080
| Name | Description |
|---|---|
|
JWT 토큰 |
| Parameter | Description |
|---|---|
|
메뉴 ID |
HTTP/1.1 200 OK
Content-Type: application/json
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 305
{
"code" : 200,
"status" : "success",
"message" : "성공적으로 처리되었습니다.",
"data" : {
"id" : "550e8400-e29b-41d4-a716-446655440000",
"name" : "맛있는 메뉴",
"price" : 15000,
"description" : "매콤달콤한 맛이 일품인 메뉴",
"deleted" : true
}
}
| Path | Type | Description |
|---|---|---|
|
|
응답 코드 |
|
|
응답 상태 |
|
|
응답 메시지 |
|
|
메뉴 ID |
|
|
메뉴 이름 |
|
|
메뉴 가격 |
|
|
메뉴 설명 |
|
|
삭제 여부 |