오늘은 도서관리 서비스의 API를 설계했어요.
| 구분 | 내용 |
|---|---|
| Method | POST |
| URI | /register |
| HTTP status code | 성공 201 |
| Request Body | { "email" : "사용자가 입력한 이메일", "password" : "사용자가 입력한 비밀번호" } |
| Response Body | x |
| 구분 | 내용 |
|---|---|
| Method | |
| 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 | x |
| 구분 | 내용 |
|---|---|
| Method | PUT |
| URI | /reset |
| HTTP status code | 성공 200 |
| Request Body | { "email" : "사용자가 입력한 이메일", "password" : "사용자가 입력한 새로운 비밀번호" } |
| Response Body | x |
| 구분 | 내용 |
|---|---|
| Method | GET |
| URI | /books |
| HTTP status code | 성공 200 |
| Request Body | x |
| Response Body | [ { "id": "도서 id", "title": "도서 제목", "summary": "요약 설명", "author": "도서 작가", "price": "가격", "likes": "좋아요 수", "pubDate": "출간일" }, ... ] |
| 구분 | 내용 |
|---|---|
| Method | GET |
| URI | /books/{bookid} |
| HTTP status code | 성공 200 |
| Request Body | x |
| Response Body | { "id": "도서 id", "title": "도서 제목", "category": "카테고리", "format": "포맷", "isbn": "isbn", "summary": "요약 설명", "description": "상세 설명", "author": "도서 작가", "pages": "쪽 수", "index": "목차", "price": "가격", "likes": "좋아요 수", "liked": true, "pubDate": "출간일" } |
| 구분 | 내용 |
|---|---|
| Method | GET |
| URI | /books?category_id={category_id}&new={boolean} |
| HTTP status code | 성공 200 |
| Request Body | x |
| Response Body | [ { "id": "도서 id", "title": "도서 제목", "summary": "요약 설명", "author": "도서 작가", "price": "가격", "likes": "좋아요 수", "pubDate": "출간일" }, ... ] |
| 구분 | 내용 |
|---|---|
| Method | PUT |
| URI | /likes/{bookId} |
| HTTP status code | 성공 200 |
| Request Body | x |
| Response Body | x |
| 구분 | 내용 |
|---|---|
| Method | DELETE |
| URI | /likes/{bookId} |
| HTTP status code | 성공 204 |
| Request Body | x |
| Response Body | x |
| 구분 | 내용 |
|---|---|
| Method | POST |
| URI | /cart |
| HTTP status code | 성공 201 |
| Request Body | { "bookId" : "도서 id", "count" : "수량" } |
| Response Body | x |
| 구분 | 내용 |
|---|---|
| Method | GET |
| URI | /cart |
| HTTP status code | 성공 200 |
| Request Body | x |
| Response Body | [ { "cartItemId": "장바구니 도서 id", "bookId": "도서 id", "title": "도서 제목", "summary": "도서 요약", "count": "수량", "price": "가격" }, ... ] |
| 구분 | 내용 |
|---|---|
| Method | DELETE |
| URI | /cart/{bookid} |
| HTTP status code | 성공 200 |
| Request Body | x |
| Response Body | x |
| 구분 | 내용 |
|---|---|
| Method | GET |
| URI | /cart |
| HTTP status code | 성공 200 |
| Request Body | { cart_item_id, cart_item_id, ...} |
| Response Body | [{ "cartItemId": "장바구니 도서 id","bookId": "도서 id", "title": "도서 제목", "summary": "도서 요약", "count": "수량", "price": "가격" }, { "cartItemId": "장바구니 도서 id", "bookId": "도서 id", "title": "도서 제목", "summary": "도서 요약", "count": "수량", "price": "가격" }] |
api 설계를 하다보니 화면에 맞게 하려면 이 부분이 주문 상품이 아니라 주문 예상 품목이 되어야함을 알아 수정했어요.
| 구분 | 내용 |
|---|---|
| Method | POST |
| URI | /orders |
| HTTP status code | 성공 200 |
| Request Body | { |
| Response Body | [ { "cartItemId": "장바구니 도서 id", "bookId": "도서 id", "title": "도서 제목", "summary": "도서 요약", "count": "수량", "price": "가격" }, ... ] |
| 구분 | 내용 |
|---|---|
| Method | GET |
| URI | /orders |
| HTTP status code | 성공 200 |
| Request Body | (없음) |
| Response Body | [ |
| 구분 | 내용 |
|---|---|
| Method | GET |
| URI | /orders/{order_id} |
| HTTP status code | 성공 200 |
| Request Body | (없음) |
| Response Body | [ |