- Product
- 상품 이름 : 50자 이상인 경우 예외를 던진다.
- 가격 : 0 미만 10억 초과인 경우 예외를 던진다.
- 이미지 : 2000자 초과일 경우 예외를 던진다.
- User
- 이메일 : 이메일 형식이 아닐 경우 예외를 던진다.
- 비밀번호: 4자 미만일 경우 예외를 던진다.
-
상품 목록 페이지 연동
- 요청 : GET
/products
- 응답 : index.html
- 모델 추가 : List<ProductResponse>
- 요청 : GET
-
관리자 도구 페이지 연동
- 요청 : GET
/admin
- 응답 : admin.html
- 모델 추가 : List<ProductResponse>
- 요청 : GET
-
설정 페이지 연동
- 요청 : GET
/settings
- 응답 : settings.html
- 모델 추가 : List<MemberResponse>
- 요청 : GET
-
장바구니 목록 페이지 연동
- 요청 : GET
/cart
- 응답 : cart.html
- 요청 : GET
-
상품 생성
- URI :
/products
- 요청 : post
- body : 상품 이름, 가격, 이미지
- 응답 : 201
- 예외
- 400 : 입력값이 비어있거나, 도메인 조건을 만족하지 않은 경우
- 요청 : post
- URI :
-
상품 업데이트
- URI :
/products/{id}
- 요청 : put
- path variable : id 전송
- body : 상품 이름, 가격, 이미지
- 응답 : 200
- 예외
- 400 : 입력값이 비어있거나, 도메인 조건을 만족하지 않은 경우
- 404 : 업데이트하려는 상품이 없는 경우
- 요청 : put
- URI :
-
상품 삭제
- URI :
/products/{id}
- 요청 : delete
- path variable : id 전송
- 응답 : 202
- 예외
- 404 : 삭제하려는 상품이 없는 경우
- 요청 : delete
- URI :
-
장바구니 조회
- URI :
/carts
- 요청 : get
- header : Basic 형식의 토큰
- 응답 : 200 List<CartResponse>
- 예외
- 404 : 회원 정보가 없는 경우
- 요청 : get
- URI :
-
장바구니 추가
- URI :
/carts/{productId}
- 요청 : post
- header : Basic 형식의 토큰
- path variable : 상품 id 전송
- 응답 : 201
- 예외
- 404 : 회원 정보가 없는 경우
- 404 : 이미 장바구니에 담은 상품일 경우
- 요청 : post
- URI :
-
장바구니 삭제
- URI :
/carts/{id}
- 요청 : delete
- header : Basic 형식의 토큰
- path variable : 카트 id 전송
- 응답 : 202
- 예외
- 404 : 회원 정보가 없는 경우
- 404 : 존재하지 않는 상품을 삭제하려는 경우
- 요청 : delete
- URI :
CREATE TABLE PRODUCT (
id BIGINT NOT NULL AUTO_INCREMENT,
name VARCHAR(50) NOT NULL,
price INT NOT NULL,
image VARCHAR(2000) NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE MEMBER (
id BIGINT NOT NULL AUTO_INCREMENT,
email VARCHAR(20) NOT NULL,
password VARCHAR(50) NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE CART (
id BIGINT NOT NULL AUTO_INCREMENT,
product_id BIGINT NOT NULL,
member_id BIGINT NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (product_id) REFERENCES PRODUCT (id),
FOREIGN KEY (member_id) REFERENCES MEMBER (id)
);