Recipe Review Service는 Zipbob 프로젝트의 서비스 중 하나로, LLM이 추천한 레시피에 대한 리뷰를 관리하는 기능을 제공합니다. 사용자들은 이 서비스를 통해 레시피에 대한 리뷰를 작성하고, 조회하고, 수정하고, 삭제할 수 있습니다.
Endpoint | Method | Req. body | Status | Description |
---|---|---|---|---|
/reviews |
POST |
Review | 201 | 새로운 리뷰를 생성합니다 |
/reviews/recipe |
GET |
recipeId | 200 | 특정 레시피의 모든 리뷰를 조회합니다 |
/reviews/member |
GET |
memberId | 200 | 특정 회원의 모든 리뷰를 조회합니다 |
/reviews |
PATCH |
Review | 200 | 기존 리뷰를 수정합니다 |
/reviews |
DELETE |
reviewId | 204 | 리뷰를 삭제합니다 |
// POST /reviews
//Request Body :
{
"memberId": 1,
"recipeId": "recipe_6789032",
"content": "좋은 레시피입니다 ~!",
"rating": 4.5,
"authorNickname": "covy"
}
//Response :
//Status Code : 201 CREATED
{
"reviewId": "67621bdc3ff6720bb5640b76",
"memberId": 1,
"recipeId": "recipe_6789032",
"createdDate": "2024-12-18T09:48:28.29847",
"updatedDate": "2024-12-18T09:48:28.29847"
}
// GET /reviews/recipe?recipeId=recipe_6789012
//Response :
//Status Code : 200 OK
{
"reviews": [
{
"id": "67621bdc3ff6720bb5640b76",
"memberId": 1,
"recipeId": "recipe_6789012",
"content": "좋은 레시피입니다 ~!",
"rating": 4.5,
"authorNickname": "covy",
"createdDate": "2024-01-25T14:30:00",
"updatedDate": "2024-01-25T14:30:00"
}
]
}
// GET /reviews/member?memberId=1
//Response :
{
"reviews": [
{
"id": "67621bdc3ff6720bb5640b76",
"memberId": 1,
"recipeId": "recipe_6789012",
"content": "좋은 레시피입니다 ~!",
"rating": 4.5,
"authorNickname": "covy",
"createdDate": "2024-01-25T14:30:00",
"updatedDate": "2024-01-25T14:30:00"
}
]
}
// PATCH /reviews
//Request Body :
{
"reviewId": "67621bdc3ff6720bb5640b76",
"content": "괜찮은 레시피입니다 ~!",
"rating": 3.5
}
//Response :
//Status Code : 200 OK
{
"reviewId": "67621bdc3ff6720bb5640b76",
"memberId": 1,
"recipeId": "recipe_6789032",
"createdDate": "2024-12-18T09:48:28.298",
"updatedDate": "2024-12-18T09:55:01.426709"
}
// DELETE /reviews
//Request Body :
{
"reviewId": "67621bdc3ff6720bb5640b76"
}
//Response :
//Status Code : 204 No Content
- Java 17
- Spring Boot 3.3.5
- Spring Cloud
- MongoDB
- Gradle
```bash ./gradlew build ```
```bash ./gradlew bootBuildImage ```
MongoDB, Vault 등의 서비스 실행 방법은 zipbob-deployment 저장소를 참고해주세요.
모든 API 요청에는 Authorization 헤더에 Bearer 토큰이 필요합니다: ``` Authorization: Bearer {accessToken} ```
- spring-boot-starter-web
- spring-boot-starter-data-mongodb
- spring-cloud-starter-config
- spring-boot-starter-validation
- spring-cloud-starter-vault-config