회원 API
회원 가입
이메일과 비밀번호를 입력받아 회원가입한다.
Method | POST |
URI | /join |
HTTP Status Code | 성공 (201) |
Request Body | { email: “사용자가 입력한 이메일” password: “사용자가 입력한 비밀번호” } |
Response Body |
로그인
이메일과 비밀번호로 로그인하고, 로그인에 성공하면 토큰을 발행해 준다.
Method | POST |
URI | /login |
HTTP Status Code | 성공(200) |
Request Body | { email: “사용자가 입력한 이메일” password: “사용자가 입력한 비밀번호” } |
Response Body | JWT token |
비밀번호 초기화 요청
비밀번호를 초기화하는 버튼을 클릭했을 때 발생하는 요청이다.
Method | POST |
URI | /reset |
HTTP Status Code | 성공(200) |
Request Body | { email: “사용자가 입력한 이메일” } |
Response Body |
비밀번호 초기화(수정)
비밀번호를 수정하는 API이다.
Method | PUT |
URI | /reset |
HTTP Status Code | 성공(200) |
Request Body | { password: “사용자가 입력한 비밀번호” } |
Response Body |
도서 API
전체 도서 조회
이미지 경로와 한 번에 8개씩 보내는 것은 아직 고려하지 않았다.
Method | GET |
URI | /books |
HTTP Status Code | 성공(200) |
Request Body | |
Response Body | [ { id: 도서 id, title: “도서 제목”, summary: ‘요약 설명”, author: “작가”, price: 가격, likes: “좋아요 수”, pubDate: “출간일” }, … ] |
개별 도서 조회
이미지 경로는 고려하지 않았다. 전체 도서를 조회할 때보다 더 상세한 정보를 보여준다.
Method | GET |
URI | /books/{bookId} |
HTTP Status Code | 성공(200) |
Request Body | |
Response Body | { id: 도서 id, title: “도서 제목”, cartegory: “카테고리”, format: “포맷”, isbn: “isbn”, summary: ‘요약 설명”, description: “상세 설명” author: “작가”, pages: 쪽 수, index: “목차”, price: 가격, likes: “좋아요 수” liked: Boolean, pubDate: “출간일” } |
카테고리별 도서 목록 조회
도서를 카테고리별로 조회할 수 있고, 신간도 확인할 수 있는 페이지이다.
신간은 출간일 30일 이내의 책들이다.
이미지 경로와 한 번에 8개씩 보내주는 것은 고려하지 않았다.
Method | GET |
URI | /books?categoryId={categoryId}&new={boolean} |
HTTP Status Code | 성공(200) |
Request Body | |
Response Body | [ { id: 도서 id, title: “도서 제목”, summary: ‘요약 설명”, author: “작가”, price: 가격, likes: “좋아요 수” pubDate: “출간일” }, … ] |
좋아요 API
좋아요 추가/취소
도서를 찜(좋아요)할 수 있는 기능이다.
아직 세부적인 사항을 작성하지 않았다.
Method | PUT |
URI | /likes/{bookId} |
HTTP Status Code | 성공(200) |
Request Body | |
Response Body |
장바구니 API
장바구니 담기
사용자마다 장바구니가 다르기 때문에 사용자 id도 추후에 반영되어야 할 것 같다.
Method | POST |
URI | /cart |
HTTP Status Code | 성공(201) |
Request Body | { bookId: 도서 id, count: 수량, } |
Response Body |
장바구니 조회
도서 id만으로는 장바구니에 담긴 각 항목들을 명확하게 구분하기 힘들 수 있기 때문에 장바구니 도서 id를 사용한다.
Method | GET |
URI | /cart |
HTTP Status Code | 성공(200) |
Request Body | |
Response Body | [ { cartItemId: 장바구니 도서 id, bookId: 도서 id title: “도서 제목”, summary: “도서 요약”, count: 수량, price: 가격 }, … ] |
장바구니 삭제
URI에 bookId가 아니라 cartItemId가 더 맞는 것 아닌가 싶긴 한데 일단 이대로 간다.
Method | DELETE |
URI | /cart/{bookId} |
HTTP Status Code | 성공(200) |
Request Body | |
Response Body |
주문 API
장바구니에서 선택한 상품 목록 조회
장바구니에서 넘어오는 페이지이므로 장바구니 도서 id를 사용한다.
Method | GET |
URI | / |
HTTP Status Code | 성공(200) |
Request Body | |
Response Body | [ { cartItemId: 장바구니 도서 id, bookId: 도서 id title: “도서 제목”, summary: “도서 요약”, count: 수량, price: 가격 }, … ] |
'데브코스' 카테고리의 다른 글
[7주차 - DAY2] 도서 정보 API 설계 및 구현 (0) | 2024.04.09 |
---|---|
[7주차 - DAY1] 도서 정보 API 설계 및 ERD 설계 (0) | 2024.04.08 |
[6주차 복습 발표] JWT를 이용한 인증 및 인가 (0) | 2024.04.04 |
[6주차 - DAY4] cookie, jwt 설정 (0) | 2024.04.04 |
[6주차 - DAY3] JWT를 이용한 인증 및 인가 (0) | 2024.04.03 |