Spring/[P] 도서 대여 프로그램

🖤 API 명세서 작성하기 (+ DTO) 🖤

alsruds 2023. 11. 22. 04:44

2023.11.22 - [Spring/[PROJECT] 도서 대여 프로그램] - 🩶 ERD 설계하기 🩶

 

🩶 ERD 설계하기 🩶

2023.11.22 - [Spring/[PROJECT] 도서 대여 프로그램] - 🤍 비즈니스 요구사항 설계하기 🤍 🤍 비즈니스 요구사항 설계하기 🤍 😳 회원 회원 가입 & 회원 탈퇴 로그인 & 로그아웃 이름, 닉네임, 전화번

alsrudalsrudalsrud.tistory.com

 

API 명세서

기능 HTTP Method API Path
회원 가입 POST /user/signin
회원 탈퇴 PATCH /user/signout/{userId}
로그인 POST /user/login
로그아웃 GET /user/logout
책 전체 조회 GET /book
책 설명 페이지 GET /book/{bookId}
책 대여하기 PATCH /book/{bookId}
책 반납하기 PATCH /book/{bookId}
좋아요 반영 PATCH /book/like/{bookId}
좋아요 취소 PATCH /book/like/{bookId}
카테고리 별 집계 GET /category/{categoryId}

 

DTO (Data Transfer Object)

· 회원 가입

          》PostMapping

          》@RequestBody  

Request Response
{
  id : bigint,
  email : string,
  password : string,
  nickname : string,
  phoneNum : string,
  gender : enum
}
{
  state : "[status code]"
}

 

· 회원 탈퇴 (soft delete)

          》PatchMapping

          》@PathVariable - id

Request Response
{
  id : bigint
{
  state : "[status code]"
}

 

· 로그인

          》PostMapping

          》@RequestBody

Request Response
{
  email : string,
  password : string
}
{
  state : "[status code]"
}

 

· 로그아웃

          》GetMapping

Request Response
  {
  state : "[status code]"
}

 

· 책 전체 조회

          》GetMapping

Request Response
  {
  books : [
    {
      id : bigint,
      name : string,
      description : text,
      likeCount : int,
      category : string,
      hashtag : string,
    },
    ...
  ]
}

 

· 책 설명 페이지

          》GetMapping

          》@PathVariable - id

Request Response
{
  id : bigint
}
{
  id : bigint,
  name : string,
  description : text,
  likeCount : int,
  category : string,
  hashtag : string
}

 

· 책 대여하기

          》PatchMapping

          @PathVariable - id

Request Response
{
  id : bigint
}
{
  state : "[status code]"
}

 

· 책 반납하기

          》PatchMapping

          @PathVariable - id

Request Response
{
  id : bigint
}
{
  state : "[status code]"
}

 

· 좋아요 반영

          》PatchMapping

          @PathVariable - id

Request Response
{
  id : bigint
}
{
  state : "[status code]"
}

 

· 좋아요 취소

          》PatchMapping

          @PathVariable - id

Request Response
{
  id : bigint
}
{
  state : "[status code]"
}

 

· 카테고리 별 집계

          》GetMapping

          @PathVariable - id

Request Response
{
  id : bigint
}
{
  name : string,
  bookCount : int
}