본문 바로가기

공부/타입스크립트로 함께하는 웹 풀 사이클 개발(React, Node.js)

프로젝트: Node.js 기반의 REST API 구현(3)-ERD 도움받기

좋아요 API를 위한 ERD

좋아요 API

1. 좋아요 추가

Method POST
URI /likes/:{bookId}
HTTP status code 성공 200
Request Body  
Response Body  

2. 좋아요 취소

Method DELETE
URI /likes/:{bookId}
HTTP status code 성공 200
Request Body  
Response Body  

장바구니 API를 위한 ERD

장바구니 API

1. 장바구니 담기

Method POST
URI /cart
HTTP status code 성공 201
Request Body {
    "book_id" : "도서 id",
    "count" : 수량
}
Response Body  

2. 장바구니 조회

Method GET
URI /cart
HTTP status code 성공 200
Request Body  
Response Body [
    {
        "cartItem_id" : 장바구니 도서 id,
        "book_id" : 도서 id,
        "title" : "도서명",
        "category" : "도서 카테고리",
        "summary" : "요약 설명",
        "count" : 수량
        "price" : 가격,
    },
    {
        "cartItem_id" : 장바구니 도서 id,
        "book_id" : 도서 id,
        "title" : "도서명",
        "category" : "도서 카테고리",
        "summary" : "요약 설명",
        "count" : 수량
        "price" : 가격,
    },
    ...
]

3. 장바구니 도서 삭제

Method DELETE
URI /cart/:{bookId}
HTTP status code 성공 200
Request Body  
Response Body  

4. 장바구니에서 선택한 주문 '예상' 상품 목록 조회

Method GET
URI /cart/:{bookId}
HTTP status code 성공 200
Request Body [
    "cartItem_id": 장바구니 id
]
Response Body [
    {
        "cartItem_id" : 장바구니 도서 id,
        "book_id" : "도서 id",
        "title" : "도서명",
        "category" : "도서 카테고리",
        "summary" : "요약 설명",
        "count" : 수량
        "price" : 가격,
    },
    {
        "cartItem_id" : 장바구니 도서 id,
        "book_id" : "도서 id",
        "title" : "도서명",
        "category" : "도서 카테고리",
        "summary" : "요약 설명",
        "count" : 수량
        "price" : 가격,
    },
    ...
]

결제(주문) API를 위한 ERD

결제(주문) API

1. 결제하기

= 주문하기 = 주문등록 = 데이터베이스 주문 insert = 장바구니에서 주문된 상품은 delete

Method POST
URI /orders
HTTP status code 성공 200
Request Body {
    "items" : [
        {
            "cartItem_id" : 장바구니 도서 id,
            "book_id" : 도서 id,
            "bookTitle" : "대표 책 제목",
            "count" : 수량
        },
        {
            "cartItem_id" : 장바구니 도서 id,
            "book_id" : 도서 id,
            "bookTitle" : "대표 책 제목",
            "count" : 수량

        },
        ...
    ],
    "delivery" : {
        "address" : "주소",
        "receiver" : "받는 사람",
        "contact" : "010-0000-0000"
    },
    "totalPrice" : 총 금액,
    "totalCount" : "총 수량"

}
Response Body  

2. 결제목록(내역) 조회

Method GET
URI /orders
HTTP status code 성공 200
Request Body  
Response Body [
    {
        "orders_id" : 주문 id,
        "create_at" : "주문일자",
        "delivery" : {
            "address" : "주소",
            "veceiver" : "받는 사람",
            "contact" : "전화번호"
    },
    "bookTitle" : "대표 책 제목",
    "totalPrice" : "총 금액",
    "totalCount" : "총 수량"
]

3. 주문 상세 상품 조회

Method GET
URI /orders/:{orderId}
HTTP status code 성공 200
Request Body  
Response Body [
    {
        "book_id" : 도서 id,
        "bookTitle" : "대표 책 제목",
        "author" : "작가명",
        "price" : 가격,
        "count" : 수량
    },
    {
        "book_id" : 도서 id,
        "bookTitle" : "대표 책 제목",
        "author" : "작가명",
        "price" : 가격,
        "count" : 수량
    },
    ...
]