본문 바로가기

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

프로젝트: Node.js 기반의 REST API 구현(2)-같이 해보기

회원 API

1. 회원가입

Method POST
URI /join
HTTP status code 성공 201
Request Body {
    "email" : "사용자가 입력한 이메일",
    "password" : "사용자가 입력한 비밀번호",
    "passwordCheck" : "사용자가 더블 확인 한 비밀번호"
}
Response Body  

 

2. 로그인

Method POST
URI /login
HTTP status code 성공 200
Request Body {
    "email" : "사용자가 입력한 이메일",
    "password" : "사용자가 입력한 비밀번호"
}
Response Body JWT Token

 

3. 비밀번호 초기화 요청

Method POST
URI /reset
HTTP status code 성공 200
Request Body {
    "email" : "사용자가 입력한 이메일"
}
Response Body  

 

4. 비밀번호 초기화(=수정)

Method PUT
URI /reset
HTTP status code 성공 201
Request Body {
    "password" : "사용자가 입력한 비밀번호",
    "passwordCheck" : "사용자가 더블 확인 한 비밀번호"
}
Response Body  

도서API

1. 전체 도서 조회

    // 이미지 경로, 조회시 아이템 8개씩 보여주기

    // 카테고리 id 어떻게 알고 보내줄까?

Method GET
URI /books
HTTP status code 성공 200
Request Body  
Response Body [
    {
        "book_id" : "도서 id",
        "title" : "도서명",
        "category" : "도서 카테고리",
        "summary" : "요약 설명",
        "author" : "작가명",
        "price" : 가격,
        "likes" : 좋아요 수,
        "pubDate" : "출간일"
    },
    {
        "book_id" : "도서 id",
        "title" : "도서명",
        "category" : "도서 카테고리",
        "summary" : "요약 설명",
        "author" : "작가명",
        "price" : 가격,
        "likes" : 좋아요 수,
        "pubDate" : "출간일"
    },
    ...
]

2. 개별 도서 조회

    // 이미지 경로

Method GET
URI /books/:{bookId}
HTTP status code 성공 200
Request Body  
Response Body {
    "book_id" : "도서 id",
    "title" : "도서명",
    "category" : "도서 카테고리",
    "format" : "포맷",
    "isbn" : "isbn",
    "summary" : "요약 설명",
    "description" : "상세 설명",
    "author" : "작가명",
    "pages" : 쪽 수,
    "index" : "목차",
    "price" : 가격,
    "likes" : 좋아요 수,
    "liked" : boolean,
    "pubDate" : "출간일"
}

3. 카테고리별 도서 목록 조회

    -new: true=> 신간조회(기준: 출간일 30일 이내)

    // 이미지 경로, 조회시 아이템 8개씩 보여주기

    // 카테고리 id 어떻게 알고 보내줄까?

Method GET
URI /books?category={categoryId}&new={boolean}
HTTP status code 성공 200
Request Body  
Response Body [
    {
        "book_id" : "도서 id",
        "title" : "도서명",
        "category" : "도서 카테고리",
        "summary" : "요약 설명",
        "author" : "작가명",
        "price" : 가격,
        "likes" : 좋아요 수 ,
        "pubDate" : "출간일"
    },
    {
        "book_id" : "도서 id",
        "title" : "도서명",
        "category" : "도서 카테고리",
        "summary" : "요약 설명",
        "author" : "작가명",
        "price" : 가격,
        "likes" : 좋아요 수 ,
        "pubDate" : "출간일"
    },
    ...
]

좋아요 API

1. 좋아요 추가

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

2. 좋아요 취소

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

장바구니 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  

주문 API

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

Method GET
URI /cart/:{bookId}
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" : 가격,
    },
    ...
]