본문 바로가기
TIL with Programmers

[TIL] 9/26 와이어프레임 보고 API 설계해보기

by 보먀 2024. 9. 26.
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
반응형