Open eora21 opened 1 year ago
지금까지 그린 UI를 보며 작성해봅시다.
랜딩페이지
GET /
로그인화면
GET /login
회원가입화면
GET /signup
POST /login
Request
{
"loginId": "user1",
"password": "e12oj25905uteiofhjfhskjfh23r239823rh3",
"csrf_token": "wfw424rwrwrwfseda"
}
Response (200)
{
"statusCode" : "ACTIVE",
"authority": "USER",
"accountId": 1
}
일반 회원
POST /accounts/customer
사업자 회원
POST /accounts/business
Request
{
"loginId": "user1",
"password": "e12oj25905uteiofhjfhskjfh23r239823rh3",
"csrf_token": "wfw424rwrwrwfseda",
"name": "나유저",
"nickname": "유저아님",
"email": "aa@aa.com",
"birthday": 1998-09-20,
"phoneNumber": "01012345678"
}
Response (201)
empty
GET /accounts/{accountId}/address-book
Response (200)
[
{
"addressId": 1,
"alias": "자취방",
"mainPlace": "광주광역시 ~~",
"detailPlace": "102동 1004호",
"latitude": 123.213532535431,
"longitude": 43.872132535431
},
{
"addressId": 2,
"alias": "본가",
"mainPlace": "서울특별시 ~~",
"detailPlace": "107동 1004호",
"latitude": 133.213532535431,
"longitude": 63.872132535431
},
...
]
POST /accounts/{accountId}/address-book
Request
{
"alias": "자취방",
"mainPlace": "광주광역시 ~~",
"detailPlace": "102동 1004호",
"latitude": 123.213532535431,
"longitude": 43.872132535431
}
Response (201)
empty
DELETE /accounts/{accountId}/address-book/{addressId}
Response (204)
empty
PATCH /accounts/{accountId}/status
Request
{
"statusCode": "ACTIVE"
}
Response (200)
{
"accountId": 1,
"statusCode": "ACTIVE",
"description": "활성"
}
POST /stores
Request
{
"businessLicenseNumber": "0123456789",
"representativeName": "나사장",
"openingDate": 2023-07-02,
"name": "맛집옆그집",
"phoneNumber": "354020001111",
"address": "광주광역시 ~~ 무슨무슨길 19",
"businessLicense": "multipart-formdata",
"description": "우리는 ~매장입니다."
}
Response (200)
[
{
"categoryCode": "CHK",
"description": "치킨"
},
{
"categoryCode": "CWE",
"description": "예압"
}
]
GET /accounts/{accountId}/stores
Response (200)
[
{
"storeId": 1,
"name": "치킨집"
},
{
"storeId": 2,
"name": "피자집"
}
]
GET /accounts/{accountId}/stores/{storeId}
Response (200)
{
"name": "치킨집",
"image": "d12k4j45-r23fdgfgs-23tregwer-2332r422.png",
"description": "여기 맛집임",
"categoryDescription": ["피자", "치킨"],
"defaultEarningRate": 1.5,
"storeBusinessHours": ["월 16:00~22:00", "월 23:00~24:00", "화 00:00~04:00", "화 16:00~22:00"]
}
GET /stores/{storeId}/management/{accountId}/menu-group
Response (200)
[
{
"menuGroupId": 1,
"name": "신메뉴",
"menu": ["불고기 피자", "하와이안 피자"]
},
{
"menuGroupId": 2,
"name": "대표메뉴",
"menu": ["소고기 피자", "돼지고기 피자"]
},
...
]
POST /stores/{storeId}/management/{accountId}/menu-group
Request
{
"name": "1인 메뉴",
"description": "혼자 먹기 좋은 메뉴"
}
Response (201)
empty
PATCH /stores/{storeId}/management/{accountId}/menu-group/{menuGroupId}
Request
{
"name": "1인 메뉴",
"description": "혼자 먹다 둘이 죽어도 좋은 메뉴"
}
Response (200)
empty
DELETE /stores/{storeId}/management/{accountId}/menu-group/{menuGroupId}
Response (204)
empty
GET /stores/{storeId}/management/{accountId}/option-group
Response (200)
[
{
"optionGroupId": 1,
"name": "맵기",
"options": ["순한맛", "보통맛", "매운맛"]
},
{
"optionGroupId": 2,
"name": "추가메뉴",
"options": ["환타", "사이다", "콜라"]
}
]
PUT /stores/{storeId}/management/{accountId}/option-group?id={optionGroupId}
Request
{
"name": "사이즈",
"minSelectCount": 1,
"maxSelectCount": 2,
"options": [
{
"name": "S",
"price": 1000
},
{
"name": "M",
"price": 2000
},
{
"name": "L",
"price": 3000
}
]
}
Response (201)
empty
DELETE /stores/{storeId}/management/{accountId}/option-group/{optionGroupId}
Response (204)
empty
GET /stores/{storeId}/management/{accountId}/menu-group/{menuGroupId}/menu
Response (200)
[
{
"menuId": 1,
"name": "불고기피자"
},
{
"menuId": 2,
"name": "하와이안피자"
},
...
]
POST /stores/{storeId}/management/{accountId}/menu-group/{menuGroupId}/menu
Request
{
"name": "어깨 피자",
"price": 23000,
"description": "지친 사회인들을 위한 피자",
"image": "multipart-formdata",
"cookingTime": 33,
"earningRate": 1.5,
"optionGroups": [1, 2, 3]
}
Response (201)
empty
PATCH /stores/{storeId}/management/{accountId}/menu-group/{menuGroupId}/menu/{menuId}
Request
{
"name": "어깨 쫌 피자",
"price": 24000,
"description": "지친 사회인들을 위한 피자",
"cookingTime": 33,
"earningRate": 1.5,
"optionGroups": [1, 2, 3],
"isSoldOut": 0
}
Response (200)
empty
DELETE /stores/{storeId}/management/{accountId}/menu-group/{menuGroupId}/menu/{menuId}
Response (204)
empty
GET /stores/{storeId}/management/{accountId}
Response (200)
{
"name": "치킨집",
"image": "d12k4j45-r23fdgfgs-23tregwer-2332r422.png",
"description": "여기 맛집임",
"categoryDescription": ["피자", "치킨"],
"defaultEarningRate": 1.5,
"storeBusinessHours": ["월 16:00~22:00", "월 23:00~24:00", "화 00:00~04:00", "화 16:00~22:00"]
}
GET /categories
Response (200)
[
{
"categoryCode": "CHK",
"description": "치킨"
},
{
"categoryCode": "CWE",
"description": "예압"
},
...
]
GET /stores
Response (200)
[
{
"storeId": 1,
"name": "네네치킨",
"image": "rw3205523-12wadsad-213sf234-234esdff32.png",
"rating": 4.5,
"categories" : [
{
"categoryCode": "CHK",
"description": "치킨"
},
{
"categoryCode": "CWE",
"description": "예압"
}
],
"storeStatusCode": "OPN"
},
{
"storeId": 2,
"name": "윙치킨",
"image": "rw3205523-12wadsad-213sf234-234esdff32.png",
"rating": 3.5,
"categories" : [
{
"categoryCode": "CHK",
"description": "치킨"
}
],
"storeStatusCode": "CLS"
},
...
]
GET /stores/{storeId}/menu
Response (200)
{
"name": "윙치킨",
"image": "rw3205523-12wadsad-213sf234-234esdff32.png",
"rating": 3.5,
"menu": [
{
"신메뉴": [
{
"name": "불고기피자",
"price": 17000,
"description": "존맛탱피자",
"image": "rw3205523-12wadsad-213sf234-234esdff32.png",
"cookingTime": 23,
"earningRate": 1.5,
"isSoldOut": 0
},
{
"name": "하와이안피자",
"price": 19000,
"description": "어깨피자 허리피자",
"image": "12wadsad-rw3205523-213sf234-234esdff32.png",
"cookingTime": 12,
"earningRate": 1.0,
"isSoldOut": 1
}
]
},
{
"인기메뉴": [
{
"name": "불고기피자",
"price": 17000,
"description": "존맛탱피자",
"image": "rw3205523-12wadsad-213sf234-234esdff32.png",
"cookingTime": 23,
"earningRate": 1.5,
"isSoldOut": 0
},
{
"name": "하와이안피자",
"price": 19000,
"description": "어깨피자 허리피자",
"image": "12wadsad-rw3205523-213sf234-234esdff32.png",
"cookingTime": 12,
"earningRate": 1.0,
"isSoldOut": 0
}
]
},
...
]
}
GET /stores/{storeId}/info
Response (200)
{
"name": "윙치킨",
"description": "피자가 맛있는 치킨집",
"image": "rw3205523-12wadsad-213sf234-234esdff32.png",
"rating": 3.5,
"address": "광주광역시 ~~ 무슨무슨길 19",
"phoneNumber": "354020001111",
"businessLisenseNumber": "12352113124",
"representativeName": "나사장"
}
GET /stores/{storeId}/reviews
Response (200)
{
"name": "윙치킨",
"image": "rw3205523-12wadsad-213sf234-234esdff32.png",
"rating": 3.5,
"reviews": [
{
"nickname": "투쩝원다노",
"menu": "하와이안 피자, 불고기 피자",
"contents": "꽤나 맛있음",
"image": "234esdff32-12wadsad-213sf234-rw3205523.png",
"rating": 4
},
{
"nickname": "다노",
"menu": "불고기 피자",
"contents": "꽤나 맛없음",
"image": "213sf234-12wadsad-213sf234-rw3205523.png",
"rating": 1
}
]
}
참고
정립