사고쳤어요
[도서 쇼핑몰] API 설계하기 본문
회원 API
회원가입
| Method | POST |
| URI | /users/join |
| HTTP Status Code | 201 |
| Request Body | { email: 이메일, password: 비밀번호, } |
| Response Body |
로그인
| Method | POST |
| URI | /users/login |
| HTTP Status Code | 200 |
| Request Body | { email: 이메일, password: 비밀번호, } |
| Response Body | JWT Token |
비밀번호 초기화
| Method | POST |
| URI | /users/reset |
| HTTP Status Code | 200 |
| Request Body | { email: 이메일, } |
| Response Body |
비밀번호 수정
| Method | PUT |
| URI | /users/reset |
| HTTP Status Code | 200 |
| Request Body | { password: 새로운 비밀번호, } |
| Response Body |
도서 API
전체 도서 조회
| Method | GET |
| URI | /books |
| HTTP Status Code | 200 |
| Request Body | |
| Response Body | [ { id: 도서 id, title: 도서 제목, summary: 요약 설명, author: 작가, price: 가격, likes: 좋아요 수, pubDate: 출간일, }, { id: 도서 id, title: 도서 제목, summary: 요약 설명, author: 작가, price: 가격, likes: 좋아요 수, pubDate: 출간일, }, ... ] |
개별 도서 조회
| Method | GET |
| URI | /books/{bookId} |
| HTTP Status Code | 200 |
| Request Body | |
| Response Body | { id: 도서 id, title: 도서 제목, category: 카테고리, format: 포맷, isbn: isbn, summary: 요약 설명, description: 상세 설명, author: 작가, pages: 쪽수, price: 가격, likes: 좋아요 수, liked: 좋아요 누른 여부, pubDate: 출간일, }, |
카테고리별 도서 조회
| Method | GET |
| URI | /books?categoryid={categoryId}&new={new} |
| HTTP Status Code | 200 |
| Request Body | |
| Response Body | [ { id: 도서 id, title: 도서 제목, summary: 요약 설명, author: 작가, price: 가격, likes: 좋아요 수, pubDate: 출간일, }, { id: 도서 id, title: 도서 제목, summary: 요약 설명, author: 작가, price: 가격, likes: 좋아요 수, pubDate: 출간일, }, ... ] |
좋아요 API
도서 좋아요
| Method | POST |
| URI | /likes/{bookId} |
| HTTP Status Code | 200 |
| Request Body | |
| Response Body |
도서 좋아요 취소
| Method | DELETE |
| URI | /likes/{bookId} |
| HTTP Status Code | 200 |
| Request Body | |
| Response Body |
장바구니 API
장바구니 도서 추가
| Method | POST |
| URI | /cart |
| HTTP Status Code | 201 |
| Request Body | { bookId: 도서 id, count: 수량, } |
| Response Body |
장바구니 조회
| Method | GET |
| URI | /cart |
| HTTP Status Code | 200 |
| Request Body | |
| Response Body | [ { cartItemId: 장바구니 도서 id, bookId: 도서 id, title: 도서 제목, summary: 도서 요약, price: 가격, count: 수량, }, { cartItemId: 장바구니 도서 id, bookId: 도서 id, title: 도서 제목, summary: 도서 요약, price: 가격, count: 수량, }, ... ] |
장바구니 도서 제거
| Method | DELETE |
| URI | /cart/{bookId} |
| HTTP Status Code | 200 |
| Request Body | |
| Response Body |
주문 API
장바구니에서 선택한 상품 목록 조회 (주문서 작성 페이지)
| Method | GET |
| URI | / |
| HTTP Status Code | 200 |
| Request Body | [ cartItemId: 장바구니 도서 id, cartItemId: 장바구니 도서 id, ... ] |
| Response Body | [ { cartItemId: 장바구니 도서 id, bookId: 도서 id, title: 도서 제목, summary: 도서 요약, price: 가격, count: 수량, }, { cartItemId: 장바구니 도서 id, bookId: 도서 id, title: 도서 제목, summary: 도서 요약, price: 가격, count: 수량, }, ... ] |
주문 내역 전체 조회
| Method | GET |
| URI | /orders |
| HTTP Status Code | 200 |
| Request Body | |
| Response Body | [ { orderId: 주문 번호, createdAt: 주문일자, delivery: { address: 주소, receiver: 이름, contact: 연락처, }, bookTitle: 대표 책 제목, bookCount: 구매 책 수량, totalPrice: 총 금액, }, { orderId: 주문 번호, createdAt: 주문일자, delivery: { address: 주소, receiver: 이름, contact: 연락처, }, bookTitle: 대표 책 제목, bookCount: 구매 책 수량, totalPrice: 총 금액, }, .... ] |
주문 내역 상세 조회
| Method | GET |
| URI | /orders/{orderId} |
| HTTP Status Code | 200 |
| Request Body | |
| Response Body | { items: [ { cartItemId: 장바구니 도서 id, bookId: 도서 id, title: 도서 제목, summary: 도서 요약, price: 가격, count: 수량, }, { cartItemId: 장바구니 도서 id, bookId: 도서 id, title: 도서 제목, summary: 도서 요약, price: 가격, count: 수량, }, ... ], delivery: { address: 주소, receiver: 이름, contact: 연락처, }, } |
결제 API
주문 페이지에서 이동한 최종 결제 화면
| Method | POST |
| URI | /payments |
| HTTP Status Code | 200 |
| Request Body | |
| Response Body | { items: [ { cartItemId: 장바구니 도서 id, bookId: 장바구니 도서 id, count: 도서 수량, }, { cartItemId: 장바구니 도서 id, bookId: 장바구니 도서 id, count: 도서 수량, }, ... ], delivery: { address: 주소, receiver: 이름, contact: 연락처, }, totalPrice: 총 금액, } |
'웹 풀스택' 카테고리의 다른 글
| [도서 쇼핑몰] Node.js - app.js 기본 설정하기 (0) | 2025.03.12 |
|---|---|
| [도서 쇼핑몰] dbdiagram.io에서 ERD 설계하기 (0) | 2025.03.06 |
| [Node.js] 쿠키를 사용하여 JWT 보내기 (0) | 2025.03.01 |
| [Node.js] JWT 개념과 Node.js에서 사용해보기 (0) | 2025.03.01 |
| [Node.js] 유튜브 서비스 - 채널 삭제 서비스(DB 연결) (0) | 2025.02.27 |