본문 바로가기
TIL with Programmers

[TIL] 9/27 API 설계 명세서 작성하기

by 보먀 2024. 9. 27.
728x90
반응형

1. API 설계 - 회원 API

 

1.1. 회원가입

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

 

 

1.2. 로그인

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

 

 

1.3. 비밀번호 초기화 요청

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

 

 

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

Method PUT
URI /reset
HTTP status code 성공 200
Request Body {
    password: "사용자가 입력한 비밀번호"
}
Response Body  

 

 

 

2. API 명세서 - 도서 API 

 

2.1. 전체 도서 조회

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: "출간일"
    },
    ...
]

 

 

2.2. 개별 도서 조회

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

 

 

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

 

(신간 조회의 기준은 출간일30일 이내인 것)

Method GET
URI 카테고리별 조회(모든 데이터):
/books?catagoryId={catagoryId}&new=false

카테고리에 대한 신간 조회:
/books?catagoryId={catagoryId}&new=true
HTTP status code 성공 200
Request Body  
Response Body [
    {    
         id: "도서 id",
         title: "도서제목",
         summary: "요약 설명",
         author: "작가",
         price: 가격,
         likes: 좋아요 수,
         pubDate: "출간일"
    },
    {
         id: "도서 id",
         title: "도서제목",
         summary: "요약 설명",
         author: "작가",
         price: 가격,
         likes: 좋아요 수,
         pubDate: "출간일"
    },
    ...
]

 

 

 

3. API 설계 - 좋아요 API 

 

3.1. 좋아요 추가

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

 

 

3.2. 좋아요 취소

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

 

 

 

4. API 설계 - 장바구니 API

 

4.1. 장바구니 담기

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

 

 

4.2. 장바구니 조회

Method GET
URI /cart
HTTP status code 성공 200
Request Body  
Response Body [
     {
        cartItemId: "장바구니 도서 id",
         bookId: "도서 id",
         title: "도서 제목",
         summary: "도서 요약",
         count: 수량,
         price: 가격
     },
    {
         cartItemId: "장바구니 도서 id",
         bookId: "도서 id",
         title: "도서 제목",
         summary: "도서 요약",
         count: 수량,
         price: 가격
     },
     ...
]

 

 

4.3. 장바구니 도서 삭제

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

 

 

 

5. API 설계 - 주문 API

 

5.1. 주문서 작성 페이지 - 장바구니에서 선택한 상품 목록 조회

Method GET
URI /cart/{bookId}
HTTP status code 성공 200
Request Body  
Response Body [
     {
         cartItemId: "장바구니 도서 id",
         bookId: "도서 id",
         title: "도서 제목",
         summary: "도서 요약",
         count: 수량,
         price: 가격
     }, 
    {
         cartItemId: "장바구니 도서 id",
         bookId: "도서 id",
         title: "도서 제목",
         summary: "도서 요약",
         count: 수량,
         price: 가격
     }
    ...
]
728x90
반응형