- 브랜드 조회 API (
/brands
- GET):- 클라이언트에서 모든 브랜드를 조회할 수 있습니다.
- 브랜드 생성 API (
/brands
- POST):- 클라이언트에서 새로운 브랜드를 생성할 수 있습니다.
- 브랜드명 수정 API (
/brands/{id}
- PATCH):- 클라이언트에서 브랜드명을 수정할 수 있습니다.
- 브랜드 삭제 API (
/brands/{id}
- DELETE):- 클라이언트에서 특정 브랜드를 삭제할 수 있습니다.
- 상품 조회 API (
/products
- GET):- 클라이언트에서 모든 상품을 조회할 수 있습니다.
- 상품 추가 API (
/brands/{id}/products
- POST):- 특정 브랜드에 상품을 추가할 수 있는 API입니다.
- 가격 수정 API (
/products/{id}/price
- PATCH):- 특정 상품의 가격을 수정할 수 있는 API입니다.
- 카테고리 수정 API (
/products/{id}/category
- PATCH):- 특정 상품의 카테고리를 수정할 수 있는 API입니다.
- 상품 삭제 API (
/products/{id}
- DELETE):- 특정 상품을 삭제할 수 있는 API입니다.
- 최저 가격인 단일 브랜드의 카테고리 상품 조회 API (
/brands/min-price-category
- GET):- 최저 가격인 단일 브랜드의 카테고리 상품 조회하는 API입니다.
- 카테고리 별 최저가격 브랜드 조회 API (
/categories/price-brand
- GET):- 특정 카테고리에서 최저가격인 브랜드와 가격을 조회하는 API입니다. 카테고리를 쿼리 파라미터로 카테고리를 전달합니다.
- 전체 카테고리 별 최저가격 브랜드 조회 API (
/categories/min-prices
- GET):- 전체 카테고리에서 최저가격인 브랜드와 가격을 조회하는 API입니다.
CategoryMinPriceResponse
를 반환합니다.
- 전체 카테고리에서 최저가격인 브랜드와 가격을 조회하는 API입니다.
API 실패 시, 실패 사유 메시지와 실패값이 Body로 반환됩니다.
![Get](https://private-user-images.githubusercontent.com/73146678/310317066-a82af126-65eb-4d3e-ae43-93594d6c6f35.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjU0MjMwMzMsIm5iZiI6MTcyNTQyMjczMywicGF0aCI6Ii83MzE0NjY3OC8zMTAzMTcwNjYtYTgyYWYxMjYtNjVlYi00ZDNlLWFlNDMtOTM1OTRkNmM2ZjM1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTA0VDA0MDUzM1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTE0NWE5YzIzNWQ2NmU4YTY5ODdkZmRhN2Y3MzkzY2ViMDg0OWQyM2QxYmEzYzc4MmIyNGVjYTEwYWE4MTcyZTkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.9SSPdXSVTzeoH8f1Q86pb90rZiYjVRbw-MQ_2P3U8_c)
![GetResult](https://private-user-images.githubusercontent.com/73146678/310317083-9aeb7225-6d22-4143-ad60-33ad7db2a0f5.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjU0MjMwMzMsIm5iZiI6MTcyNTQyMjczMywicGF0aCI6Ii83MzE0NjY3OC8zMTAzMTcwODMtOWFlYjcyMjUtNmQyMi00MTQzLWFkNjAtMzNhZDdkYjJhMGY1LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTA0VDA0MDUzM1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWFlNTkyNjZjZjc1ZDM4ZTkwNzM2NGMyMDY4Nzk5YjZlZjViMzhiMzI2ZTc5MzA1YTRiOTJiMzcyYjZlZDczYWUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.BCsozd6YYV1WGPt4aUAYsOa7oO_wm4k9xsNEeZnh-7o)
![CloseResult](https://private-user-images.githubusercontent.com/73146678/310317094-575e01cf-f87d-44fb-b694-5df75ef2f24d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjU0MjMwMzMsIm5iZiI6MTcyNTQyMjczMywicGF0aCI6Ii83MzE0NjY3OC8zMTAzMTcwOTQtNTc1ZTAxY2YtZjg3ZC00NGZiLWI2OTQtNWRmNzVlZjJmMjRkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTA0VDA0MDUzM1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTg1NDc1NDk5MTI2NjFiNmQ2YTUyMDBkNzA5YjdmMDRjZjQwMTlhOGM2NGEzOTQzYjhkMDMxZmJlYmY1NGI0NDgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.x5qVvHtjigkybHOatFQcLmUvWj-BeVAsg0UnsVvHDNw)
![Post](https://private-user-images.githubusercontent.com/73146678/310317104-ac3475f6-67a8-456f-b1a7-dd2e62ee51a0.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjU0MjMwMzMsIm5iZiI6MTcyNTQyMjczMywicGF0aCI6Ii83MzE0NjY3OC8zMTAzMTcxMDQtYWMzNDc1ZjYtNjdhOC00NTZmLWIxYTctZGQyZTYyZWU1MWEwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTA0VDA0MDUzM1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWUzOTFjNWIwZGRkZTdhZTBjYjQ0ZGE2Y2MxYTEwYWZjYjIxYTBhODM5YzA5MWVjMmNmM2Y4ODdiYTY3ZTAyNjUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.mWisiF7xA83n6SVlHHGfrbq0E6UzdQaoWmyWtKl8KVI)
![PostOk](https://private-user-images.githubusercontent.com/73146678/310318255-f59d5574-195a-45f9-b058-b96b538916c0.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjU0MjMwMzMsIm5iZiI6MTcyNTQyMjczMywicGF0aCI6Ii83MzE0NjY3OC8zMTAzMTgyNTUtZjU5ZDU1NzQtMTk1YS00NWY5LWIwNTgtYjk2YjUzODkxNmMwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTA0VDA0MDUzM1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWIyMzU2NTlmYTkxMjY2OTE1MzMyNWVjMzYxYzc3MTNlMWQxYjE2ODAyYzNhMWNjMTFhNjllZDI5NzBmM2NmYmYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.miqXXncgBLlfnF6vzMLKu4sUajpRjcTqMxhu6_cgDy8)
![ErrorMessage](https://private-user-images.githubusercontent.com/73146678/310317038-1e3d60b3-a6d4-4a47-a365-caf499f5dad8.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjU0MjMwMzMsIm5iZiI6MTcyNTQyMjczMywicGF0aCI6Ii83MzE0NjY3OC8zMTAzMTcwMzgtMWUzZDYwYjMtYTZkNC00YTQ3LWEzNjUtY2FmNDk5ZjVkYWQ4LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNDA5MDQlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjQwOTA0VDA0MDUzM1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTUyODRlMWIwYjU4OTA3OGE4YjEyZDBlMDYxYzQzYjU0NzQ4N2M1NmU5OGQ3NjZjOGY2ZTdmMmQ3OGRkNjBkZGEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0JmFjdG9yX2lkPTAma2V5X2lkPTAmcmVwb19pZD0wIn0.vpeP6t6wjZKwy44njXoiJKjB_bP8KBiJSXbTPj_-APs)
./gradlew build
./gradlew test
java -jar build/libs/FashionShopping-0.0.1-SNAPSHOT.jar
/src
/main
/java.com.musinsa.fashionshopping
/advice
/brand
/global
/product
DataLoader.java
FashionShoppingApplication.java
/resources
/static
/css/style.css
/docs/index.html
/js
/home.html
application.yml
/test
/java.com.musinsa.fashionshopping
/brand
/fixture
/product
- Java 17
- Spring Boot 2.7.2
- Spring Data JPA
- Validation
- Lombok
- RestDocs
- Asciidoctor
- H2 Database
- JUnit 5
- RestAssured
- Mockito
- Jacoco
- Html
- css
- JavaScript