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
반응형
'TIL with Programmers' 카테고리의 다른 글
[TIL] 9/30 ERD 테이블, API 설계 및 수정 (1) | 2024.09.30 |
---|---|
[회고록] 풀 사이클 개발 데브코스 6주차 회고 (0) | 2024.09.30 |
[TIL] 9/26 와이어프레임 보고 API 설계해보기 (0) | 2024.09.26 |
[TIL] 9/25 next(), 인증, 인가, 로그인, 쿠키, 세션, JWT, 토큰 (0) | 2024.09.26 |
[TIL] 9/24 express-validator, 유효성 검사, sql 에러, API 우선순위 (1) | 2024.09.24 |