- H2 Database 사용
- DDL은 이하 기술
CREATE TABLE product
(
id BIGINT NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
price BIGINT NOT NULL,
image_url TEXT NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE member
(
id BIGINT NOT NULL AUTO_INCREMENT,
email VARCHAR(100) NOT NULL,
password VARCHAR(100) NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE cart
(
id BIGINT NOT NULL AUTO_INCREMENT,
product_id BIGINT NOT NULL,
user_id BIGINT NOT NULL,
PRIMARY KEY (id)
)
- 상품
- 상품 id
- 이름
- 이름은 비어있을 수 없다.
- 이미지
- url은 비어있을 수 없다.
- 가격
- 가격은 0 미만일 수 없다.
-
상품 조회
- GET /
- index.html 반환
-
상품 추가
- POST /product
- body : name, price, imageUrl
- admin 페이지에서 상품을 추가한다.
- 추가 성공 시 status created
- 상품 추가 요청을 유효성 검증한다.
- 이름이 공백일 수 없다.
- 가격이 0원 이상 이어야 한다.
- URL이 공백일 수 없다.
- POST /product
-
상품 조회
- GET /admin
- admin 페이지에서 상품을 보여준다.
- admin.html 반환
-
상품 수정
- PATCH /product/id
- body : name, price, imageUrl
- admin 페이지에서 상품을 수정한다.
- 해당 id에 상품이 없을 시 status not found
- update 성공 시 status ok
- 상품 수정 요청을 유효성 검증한다.
- 이름이 공백일 수 없다.
- 가격이 0원 이상 이어야 한다.
- URL이 공백일 수 없다.
- PATCH /product/id
-
상품 삭제
- DELETE /product/id
- admin 페이지에서 상품을 삭제한다.
- 해당 id에 상품이 없을 시 status not found
- delete 성공 시 status ok
- GET /settings
- 유저 전체 조회
- Basic Authorization을 통해 인증
-
GET /cart
- 장바구니의 상품 조회
-
POST /cart
- 장바구니에 상품 추가
- body : id, name, price, imageUrl
-
DELETE /cart/id
- 장바구니의 상품 삭제
- 성공 시 status ok
- 상품 없을 시 status not found
- 장바구니의 상품 삭제