728x90
반응형
1. 도서 API
1.1. 도서 전체 조회
주요 기능: 도서 목록 노출
각 도서 아이템 result:
- 제목
- 카테고리 -> 카테고리별로 나열하기 위해 카테고리 정보가 필요하기 때문에 카테고리 필드 추가
- 작가
- 요약정보
- 가격
- 좋아요 수
Method | GET |
URI | /books |
HTTP status code | 200 |
Request Body | |
Response Body | [ { title: "도서 제목", catagory: "도서 카테고리", author: "작가", summary: "도서 요약", price: 도서 가격, likes: "좋아요 수" }, { title: "도서 제목", catagory: "도서 카테고리", author: "작가", summary: "도서 요약", price: 도서 가격, likes: "좋아요 수" } ... ] |
1.2. 도서 상세 조회
주요 기능: 기본 정보 노출
도서 정보:
- 제목
- 카테고리
- 포맷
- 작가명
- ISBN
- 쪽수
- 요약 설명
- 상세설명
- 목차
- 가격
- 좋아요 수
- 내가 좋아요 했는지 여부
Method | GET |
URI | /books/:bookId |
HTTP status code | 200 |
Request Body | |
Response Body | { title: "도서 제목", catagory: "도서 카테고리", format: "도서 포맷", author: "작가", ISBN: "도서 isbn", pages: "도서 쪽수", summary: "도서 요약", description: "도서 상세 설명", index: "도서 목차", price: 도서 가격, likes: "좋아요 수", liked: "내가 좋아했는지 여부", } |
1.3. 카테고리별 도서 조회
주요기능: 카테고리별 도서 조회하기
도서 정보:
- 제목
- 카테고리 -> 카테고리별로 나열하기 위해 카테고리 정보가 필요하기 때문에 카테고리 필드 추가
- 작가
- 요약정보
- 가격
- 좋아요 수
Method | GET |
URI | /books/:catagoryId |
HTTP status code | 200 |
Request Body | |
Response Body | { title: "도서 제목", catagory: "도서 카테고리", author: "작가", summary: "도서 요약", price: 도서 가격, likes: "좋아요 수" } |
2. 회원 API
2.1. 회원가입
Method | POST |
URI | /users/join |
HTTP status code | 201 |
Request Body | { email: "회원 이메일", password: "비밀번호" } |
Response Body |
2.2. 로그인
Method | POST |
URI | /users/login |
HTTP status code | 200 |
Request Body | { email: "회원 이메일", password: "비밀번호" } |
Response Body |
2.3. 비밀번호 초기화 요청
주요기능: 비밀번호 초기화 요청
-> 비밀번호 변경 전에 이메일을 입력하고 확인을 누르면, 유저 정보를 확인하고 비밀 번호 변경하는 로직을 가지고 있는데,
실제로 비밀번호 변경 전에 유저의 이메일을 받아 유저 정보를 확인하는 화면
Method | POST |
URI | /users/resetRequest |
HTTP status code | 200 |
Request Body | { email: "회원 이메일", } |
Response Body |
2.4. 비밀번호 변경
Method | PUT |
URI | /users/resetPassword |
HTTP status code | 200 |
Request Body | { email: "회원 이메일", password: "바꾼 비밀번호" } |
Response Body |
3. 좋아요 API
3.1. 좋아요 추가/삭제
도서를 조회하는 상세페이지에서 좋아요를 누를 수 있기 때문에 URI 에 도서 id 를 받고, 좋아요를 누른 회원 id 를 리퀘스트 바디에 받는다.
데이터베이스에 좋아요 테이블을 따로 만들고,
회원이 좋아요를 누르면 좋아요 테이블에 행을 추가 / 회원이 좋아요를 취소하면 좋아요 테이블에 행을 삭제
- 좋아요 추가
Method | POST |
URI | /likes/:bookId |
HTTP status code | 200 |
Request Body | { userId: "회원 id", } |
Response Body |
- 좋아요 삭제
Method | DELETE |
URI | /likes/:bookId |
HTTP status code | 200 |
Request Body | { userId: "회원 id", } |
Response Body |
4. 장바구니 API
4.1. 장바구니 아이템 담기/삭제
주요 기능:
- 장바구니 담기
- 장바구니 삭제
장바구니 아이템 정보:
- 도서 id -> book 테이블로 가서 도서 id 로 데이터 찾아서 정보 필요한 정보 가져옴
- 금액
- 수량
- 장바구니 담기
Method | POST |
URI | /carts |
HTTP status code | 201 |
Request Body | { bookId: "도서 id", price: 가격, count: 수량 } |
Response Body |
- 장바구니 삭제
Method | DELETE |
URI | /carts/:itemId |
HTTP status code | 200 |
Request Body | |
Response Body |
4.2. 장바구니 조회
주요기능: 장바구니 조회
장바구니 아이템 정보:
- 도서 id -> book 테이블로 가서 도서 id 로 데이터 찾아서 정보 필요한 정보 가져옴
- 금액
- 수량
Method | GET |
URI | /carts |
HTTP status code | 200 |
Request Body | |
Response Body | [ { itemId: "장바구니 아이템 id", bookId: "도서 id", bookTitle: "도서 제목", summary: "도서 요약", count: 수량, price: 가격 }, { itemId: "장바구니 아이템 id", bookId: "도서 id", bookTitle: "도서 제목", summary: "도서 요약", count: 수량, price: 가격 } ... ] |
728x90
반응형
'TIL with Programmers' 카테고리의 다른 글
[회고록] 풀 사이클 개발 데브코스 6주차 회고 (0) | 2024.09.30 |
---|---|
[TIL] 9/27 API 설계 명세서 작성하기 (0) | 2024.09.27 |
[TIL] 9/25 next(), 인증, 인가, 로그인, 쿠키, 세션, JWT, 토큰 (0) | 2024.09.26 |
[TIL] 9/24 express-validator, 유효성 검사, sql 에러, API 우선순위 (1) | 2024.09.24 |
[TIL] 9/23 node.js, db 연결, db 모듈화, SQL 쿼리문, affectedRows, 단축평가(short-circuit evaluation) (0) | 2024.09.23 |