Fashion Shopping

Implementation

Back-End

Brand

  1. 브랜드 조회 API (/brands - GET):
    • 클라이언트에서 모든 브랜드를 조회할 수 있습니다.
  2. 브랜드 생성 API (/brands - POST):
    • 클라이언트에서 새로운 브랜드를 생성할 수 있습니다.
  3. 브랜드명 수정 API (/brands/{id} - PATCH):
    • 클라이언트에서 브랜드명을 수정할 수 있습니다.
  4. 브랜드 삭제 API (/brands/{id} - DELETE):
    • 클라이언트에서 특정 브랜드를 삭제할 수 있습니다.

Product

  1. 상품 조회 API (/products - GET):
    • 클라이언트에서 모든 상품을 조회할 수 있습니다.
  2. 상품 추가 API (/brands/{id}/products - POST):
    • 특정 브랜드에 상품을 추가할 수 있는 API입니다.
  3. 가격 수정 API (/products/{id}/price - PATCH):
    • 특정 상품의 가격을 수정할 수 있는 API입니다.
  4. 카테고리 수정 API (/products/{id}/category - PATCH):
    • 특정 상품의 카테고리를 수정할 수 있는 API입니다.
  5. 상품 삭제 API (/products/{id} - DELETE):
    • 특정 상품을 삭제할 수 있는 API입니다.

기타 조회

  1. 최저 가격인 단일 브랜드의 카테고리 상품 조회 API (/brands/min-price-category - GET):
    • 최저 가격인 단일 브랜드의 카테고리 상품 조회하는 API입니다.
  2. 카테고리 별 최저가격 브랜드 조회 API (/categories/price-brand - GET):
    • 특정 카테고리에서 최저가격인 브랜드와 가격을 조회하는 API입니다. 카테고리를 쿼리 파라미터로 카테고리를 전달합니다.
  3. 전체 카테고리 별 최저가격 브랜드 조회 API (/categories/min-prices - GET):
    • 전체 카테고리에서 최저가격인 브랜드와 가격을 조회하는 API입니다. CategoryMinPriceResponse를 반환합니다.

API 실패 시, 실패 사유 메시지와 실패값이 Body로 반환됩니다.

Front-End

조회

Get

조회 결과

GetResult

조회 결과 닫기

CloseResult

등록

Post

등록 성공

PostOk

실패 사유, 실패값

ErrorMessage

Run Guide

Code Build

./gradlew build

Test

./gradlew test

Run

java -jar build/libs/FashionShopping-0.0.1-SNAPSHOT.jar

API

http://localhost:8080/docs/index.html

Front Web Page

http://localhost:8080/home.html

Project Directory

/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

Tech Skills

Spring

  • Java 17
  • Spring Boot 2.7.2
  • Spring Data JPA
  • Validation
  • Lombok

Docs

  • RestDocs
  • Asciidoctor

DB

  • H2 Database

Test

  • JUnit 5
  • RestAssured
  • Mockito
  • Jacoco

Web

  • Html
  • css
  • JavaScript