Notice
Recent Posts
Recent Comments
Link
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
Archives
Today
Total
관리 메뉴

사고쳤어요

[도서 쇼핑몰] API 설계하기 본문

웹 풀스택

[도서 쇼핑몰] API 설계하기

kevinmj12 2025. 3. 5. 17:19

회원 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: 총 금액,
}