API 목록

책 목록 가져오기

요청

Request

GET /manage/books?search=&page=0&size=3&searchType=all HTTP/1.1
Host: docs.api.com
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3NDIiLCJyb2xlcyI6IlJPTEVf7IKs7IScLFJPTEVf7ZqM7JuQLFJPTEVf7ZqM7JuQIiwiaWF0IjoxNzExMTE5MTU1LCJleHAiOjE3MTExMjI3NTV9.4dN_z9P5VJ_nvp353ZF00paF9TFYcqd17MyzJI9cVj8
Cookie: refreshToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3NDIiLCJyb2xlcyI6IlJPTEVf7IKs7IScLFJPTEVf7ZqM7JuQLFJPTEVf7ZqM7JuQIiwiaWF0IjoxNzExMTE5MTU1LCJleHAiOjE3MTIzMjg3NTV9.fxrggJO3DO3EiO_xqOWVGojEAbeqQliqK_mvYqp4lwI

Request Cookies

Name Description

accessToken

ACCESS TOKEN (ROLE_회장, ROLE_부회장, ROLE_사서)

refreshToken

REFRESH TOKEN (ROLE_회장, ROLE_부회장, ROLE_사서)

Request Params

파라미터명 필수값 양식 설명

page

페이지 (양수여야 합니다.)

size

한 페이지당 불러올 개수 (default: 10) 최대: 100 최소: 3

search

책의 제목이나 저자를 검색합니다. (만약 빈 값으로 보낼 경우 책 관련 정보를 모두 가져옵니다.)

searchType

title: 제목, author: 저자, all: 제목 + 저자, null : 전체 도서 목록 조회

검색 타입

응답

Response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 2777

{
  "content" : [ {
    "bookId" : 43,
    "title" : "도서 제목",
    "author" : "도서 저자",
    "bookDepartment" : "ETC",
    "totalQuantity" : 2,
    "currentQuantity" : 0,
    "thumbnailPath" : null,
    "borrowInfos" : [ {
      "borrowInfoId" : 31,
      "bookId" : 43,
      "bookTitle" : "도서 제목",
      "author" : "도서 저자",
      "totalQuantity" : 2,
      "currentQuantity" : 0,
      "borrowerId" : 746,
      "borrowerRealName" : "WBIZZFLuPC",
      "requestDatetime" : null,
      "borrowDateTime" : "2024-03-22T14:52:35",
      "expiredDateTime" : "2024-04-05T14:52:35",
      "status" : "대출중"
    }, {
      "borrowInfoId" : 32,
      "bookId" : 43,
      "bookTitle" : "도서 제목",
      "author" : "도서 저자",
      "totalQuantity" : 2,
      "currentQuantity" : 0,
      "borrowerId" : 747,
      "borrowerRealName" : "yaHksCRuqi",
      "requestDatetime" : null,
      "borrowDateTime" : "2024-03-22T14:52:35",
      "expiredDateTime" : "2024-04-05T14:52:35",
      "status" : "반납대기"
    } ]
  }, {
    "bookId" : 42,
    "title" : "도서 제목",
    "author" : "도서 저자",
    "bookDepartment" : "ETC",
    "totalQuantity" : 2,
    "currentQuantity" : 1,
    "thumbnailPath" : null,
    "borrowInfos" : [ {
      "borrowInfoId" : 30,
      "bookId" : 42,
      "bookTitle" : "도서 제목",
      "author" : "도서 저자",
      "totalQuantity" : 2,
      "currentQuantity" : 1,
      "borrowerId" : 745,
      "borrowerRealName" : "PGszTcDEQP",
      "requestDatetime" : null,
      "borrowDateTime" : "2024-03-22T14:52:35",
      "expiredDateTime" : "2024-04-05T14:52:35",
      "status" : "대출중"
    } ]
  }, {
    "bookId" : 41,
    "title" : "도서 제목",
    "author" : "도서 저자",
    "bookDepartment" : "ETC",
    "totalQuantity" : 2,
    "currentQuantity" : 1,
    "thumbnailPath" : null,
    "borrowInfos" : [ {
      "borrowInfoId" : 29,
      "bookId" : 41,
      "bookTitle" : "도서 제목",
      "author" : "도서 저자",
      "totalQuantity" : 2,
      "currentQuantity" : 1,
      "borrowerId" : 744,
      "borrowerRealName" : "ywWedZIfxW",
      "requestDatetime" : null,
      "borrowDateTime" : "2024-03-22T14:52:35",
      "expiredDateTime" : "2024-04-05T14:52:35",
      "status" : "대출중"
    } ]
  } ],
  "pageable" : {
    "sort" : {
      "empty" : true,
      "sorted" : false,
      "unsorted" : true
    },
    "offset" : 0,
    "pageNumber" : 0,
    "pageSize" : 3,
    "paged" : true,
    "unpaged" : false
  },
  "last" : false,
  "totalPages" : 2,
  "totalElements" : 4,
  "first" : true,
  "size" : 3,
  "number" : 0,
  "sort" : {
    "empty" : true,
    "sorted" : false,
    "unsorted" : true
  },
  "numberOfElements" : 3,
  "empty" : false
}

Response Fields

Path Type Description

content[].bookId

Number

책 ID

content[].thumbnailPath

Null

책 썸네일 주소

content[].title

String

책 이름

content[].author

String

책 저자

content[].currentQuantity

Number

책 현재 수량

content[].totalQuantity

Number

책 전체 수량

content[].bookDepartment

String

책 카테고리

content[].borrowInfos[].borrowInfoId

Number

대출 정보 ID

content[].borrowInfos[].bookId

Number

대출할 책의 ID

content[].borrowInfos[].bookTitle

String

대출할 책의 제목

content[].borrowInfos[].author

String

대출할 책의 저자

content[].borrowInfos[].totalQuantity

Number

대출할 책의 전체 수량

content[].borrowInfos[].currentQuantity

Number

대출할 책의 남은 수량

content[].borrowInfos[].borrowerId

Number

대출자의 ID

content[].borrowInfos[].borrowerRealName

String

대출자의 실명

content[].borrowInfos[].requestDatetime

Null

대출 요청을 한 시간 (양식: yyyy-MM-dd’T’HH:mm:ss)

content[].borrowInfos[].borrowDateTime

String

대출 승인을 한 시간 (양식: yyyy-MM-dd’T’HH:mm:ss)

content[].borrowInfos[].expiredDateTime

String

반납 예정 시간 (양식: yyyy-MM-dd’T’HH:mm:ss)

content[].borrowInfos[].status

String

대출의 현재 상태

[대출대기, 대출반려, 대출중, 반납대기, 반납완료]

empty

Boolean

가져오는 페이지가 비어 있는 지

first

Boolean

첫 페이지인지

last

Boolean

마지막 페이지인지

number

Number

페이지 number (0부터 시작)

numberOfElements

Number

현재 페이지의 데이터 개수

pageable

Object

페이지에 대한 부가 정보

sort.empty

Boolean

정렬 기준이 비어 있는 지

sort.sorted

Boolean

정렬이 되었는지

sort.unsorted

Boolean

정렬이 되지 않았는지

totalPages

Number

총 페이지 수

totalElements

Number

총 데이터 개수

size

Number

한 페이지당 데이터 개수

책 추가

요청

Request

POST /manage/books HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Host: docs.api.com
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3NjEiLCJyb2xlcyI6IlJPTEVf7IKs7IScLFJPTEVf7ZqM7JuQLFJPTEVf7ZqM7JuQIiwiaWF0IjoxNzExMTE5MTU1LCJleHAiOjE3MTExMjI3NTV9.4fqiiYxkaEhA4Lf0pvb0V5WGOrb1SevdJYhRZXsxdlQ
Cookie: refreshToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3NjEiLCJyb2xlcyI6IlJPTEVf7IKs7IScLFJPTEVf7ZqM7JuQLFJPTEVf7ZqM7JuQIiwiaWF0IjoxNzExMTE5MTU1LCJleHAiOjE3MTIzMjg3NTV9.jCV67b0GS3i8TgWk59_clS_ygNobur8Gqnw-R4W7zsQ

--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=bookMetaData
Content-Type: application/json

{"title":"삶의 목적을 찾는 45가지 방법","author":"ChatGPT","totalQuantity":10,"bookDepartment":"DOCUMENT"}
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Content-Disposition: form-data; name=thumbnail; filename=testImage_1x1.png
Content-Type: image/png

�PNG


IHDR%�V�PLTE�z=�tRNS@��f
IDAT�c`�!�3IEND�B`�
--6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm--

Request Cookies

Name Description

accessToken

ACCESS TOKEN (ROLE_회장, ROLE_부회장, ROLE_사서)

refreshToken

REFRESH TOKEN (ROLE_회장, ROLE_부회장, ROLE_사서)

Request Fields

Path Type Description

title

String

책 제목 (최대 200자)

author

String

저자 (최대 30자)

bookDepartment

String

책 카테고리

totalQuantity

Number

책 수량 (1권 이상 20권 이하)

Request Parts

파트명 필수값 설명

bookMetaData

true

책 정보

thumbnail

책의 썸네일

응답

Response

HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Location: /books/44
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

Response Headers

Name Description

Location

생성된 책의 URI

책 삭제

요청

Request

DELETE /manage/books/47 HTTP/1.1
Host: docs.api.com
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3NjUiLCJyb2xlcyI6IlJPTEVf7ZqM7JuQLFJPTEVf7IKs7IScLFJPTEVf7ZqM7JuQIiwiaWF0IjoxNzExMTE5MTU1LCJleHAiOjE3MTExMjI3NTV9.skJQlPpCPwkgouiINDdq0Hnl0mSzeD_vV_WYARdhnFg
Cookie: refreshToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3NjUiLCJyb2xlcyI6IlJPTEVf7ZqM7JuQLFJPTEVf7IKs7IScLFJPTEVf7ZqM7JuQIiwiaWF0IjoxNzExMTE5MTU1LCJleHAiOjE3MTIzMjg3NTV9.IvfX3hzCa7kIAVRILwBV8FmRPslEcwVxdhAX7oU5Fgs

Request Cookies

Name Description

accessToken

ACCESS TOKEN (ROLE_회장, ROLE_부회장, ROLE_사서)

refreshToken

REFRESH TOKEN (ROLE_회장, ROLE_부회장, ROLE_사서)

Request Parameters

Table 1. /manage/books/{bookId}
Parameter Description

bookId

책 id

응답

Response

HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

책 정보 수정

요청

Request

PUT /manage/books/50 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Content-Length: 138
Host: docs.api.com
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3NjkiLCJyb2xlcyI6IlJPTEVf7IKs7IScLFJPTEVf7ZqM7JuQLFJPTEVf7ZqM7JuQIiwiaWF0IjoxNzExMTE5MTU1LCJleHAiOjE3MTExMjI3NTV9.HAeGJWVimJb2qQYpkLv5oG2Ul5tJXCxVGhLT2qEe2_A
Cookie: refreshToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3NjkiLCJyb2xlcyI6IlJPTEVf7IKs7IScLFJPTEVf7ZqM7JuQLFJPTEVf7ZqM7JuQIiwiaWF0IjoxNzExMTE5MTU1LCJleHAiOjE3MTIzMjg3NTV9.pnnMj53ZN72CzZCzDjJEhb-Nll5icluNC-x99dF-AH4

{
  "title" : "삶의 목적을 찾는 45가지 방법",
  "author" : "ChatGPT",
  "totalQuantity" : 10,
  "bookDepartment" : "DOCUMENT"
}

Request Cookies

Name Description

accessToken

ACCESS TOKEN (ROLE_회장, ROLE_부회장, ROLE_사서)

refreshToken

REFRESH TOKEN (ROLE_회장, ROLE_부회장, ROLE_사서)

Path Parameters

Table 2. /manage/books/{bookId}
Parameter Description

bookId

책 id

책 썸네일 수정

요청

Request

PATCH /manage/books/49/thumbnail HTTP/1.1
Content-Type: multipart/form-data;charset=UTF-8; boundary=6o2knFse3p53ty9dmcQvWAIx1zInP11uCfbm
Host: docs.api.com
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3NjgiLCJyb2xlcyI6IlJPTEVf7IKs7IScLFJPTEVf7ZqM7JuQLFJPTEVf7ZqM7JuQIiwiaWF0IjoxNzExMTE5MTU1LCJleHAiOjE3MTExMjI3NTV9.z0btRUiH6s3o3IyZL_hbzCh8_3anh7VkpnZFiRr9Qxc
Cookie: refreshToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3NjgiLCJyb2xlcyI6IlJPTEVf7IKs7IScLFJPTEVf7ZqM7JuQLFJPTEVf7ZqM7JuQIiwiaWF0IjoxNzExMTE5MTU1LCJleHAiOjE3MTIzMjg3NTV9.4VxQ4m7dK-PBHwsqNqi-5FWv7MQj_v_gHCMU8EcvaZY

Request Cookies

Name Description

accessToken

ACCESS TOKEN (ROLE_회장, ROLE_부회장, ROLE_사서)

refreshToken

REFRESH TOKEN (ROLE_회장, ROLE_부회장, ROLE_사서)

Request Parts

파트명 필수값 설명

thumbnail

책의 썸네일 (null 값으로 보낼 경우 기본 썸네일로 지정됩니다.)

응답

Response

HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

책 상세 정보 보기

요청

Request

GET /manage/books/51 HTTP/1.1
Host: docs.api.com
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3NzAiLCJyb2xlcyI6IlJPTEVf7IKs7IScLFJPTEVf7ZqM7JuQLFJPTEVf7ZqM7JuQIiwiaWF0IjoxNzExMTE5MTU1LCJleHAiOjE3MTExMjI3NTV9.oVGc_dP3N7BmVXyVEEGF3LN9sFsquM8xk8UROzNBmlY
Cookie: refreshToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI3NzAiLCJyb2xlcyI6IlJPTEVf7IKs7IScLFJPTEVf7ZqM7JuQLFJPTEVf7ZqM7JuQIiwiaWF0IjoxNzExMTE5MTU1LCJleHAiOjE3MTIzMjg3NTV9.g1LUBCaxah3_JJE1xNRJ2koIgNqN1DAH3lh_0w9GnNo

Request Cookies

Name Description

accessToken

ACCESS TOKEN (ROLE_회장, ROLE_부회장, ROLE_사서)

refreshToken

REFRESH TOKEN (ROLE_회장, ROLE_부회장, ROLE_사서)

Path Parameters

Table 3. /manage/books/{bookId}
Parameter Description

bookId

책 id

응답

Response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 1078

{
  "bookId" : 51,
  "title" : "도서 제목",
  "author" : "도서 저자",
  "bookDepartment" : "ETC",
  "totalQuantity" : 3,
  "currentQuantity" : 1,
  "thumbnailPath" : "keeper_files/thumbnail/2024-03-22/f165c279-5192-46a9-9b5b-f71563e9cbfc.jpeg",
  "borrowInfos" : [ {
    "borrowInfoId" : 36,
    "bookId" : 51,
    "bookTitle" : "도서 제목",
    "author" : "도서 저자",
    "totalQuantity" : 3,
    "currentQuantity" : 1,
    "borrowerId" : 771,
    "borrowerRealName" : "RiUisplqNe",
    "requestDatetime" : "2024-03-22T00:00:00",
    "borrowDateTime" : "2024-03-22T00:00:00",
    "expiredDateTime" : "2024-04-05T00:00:00",
    "status" : "대출중"
  }, {
    "borrowInfoId" : 37,
    "bookId" : 51,
    "bookTitle" : "도서 제목",
    "author" : "도서 저자",
    "totalQuantity" : 3,
    "currentQuantity" : 1,
    "borrowerId" : 772,
    "borrowerRealName" : "mGRjgjPdUD",
    "requestDatetime" : "2024-03-22T00:00:00",
    "borrowDateTime" : "2024-03-22T00:00:00",
    "expiredDateTime" : "2024-04-05T00:00:00",
    "status" : "반납대기"
  } ]
}

Response Fields

Path Type Description

bookId

Number

책 ID

thumbnailPath

String

책 썸네일 주소

title

String

책 이름

author

String

책 저자

currentQuantity

Number

책 현재 수량

totalQuantity

Number

책 전체 수량

bookDepartment

String

책 카테고리

borrowInfos[].borrowInfoId

Number

대출 정보 ID

borrowInfos[].bookId

Number

대출할 책의 ID

borrowInfos[].bookTitle

String

대출할 책의 제목

borrowInfos[].author

String

대출할 책의 저자

borrowInfos[].totalQuantity

Number

대출할 책의 전체 수량

borrowInfos[].currentQuantity

Number

대출할 책의 남은 수량

borrowInfos[].borrowerId

Number

대출자의 ID

borrowInfos[].borrowerRealName

String

대출자의 실명

borrowInfos[].requestDatetime

String

대출 요청을 한 시간 (양식: yyyy-MM-dd’T’HH:mm:ss)

borrowInfos[].borrowDateTime

String

대출 승인을 한 시간 (양식: yyyy-MM-dd’T’HH:mm:ss)

borrowInfos[].expiredDateTime

String

반납 예정 시간 (양식: yyyy-MM-dd’T’HH:mm:ss)

borrowInfos[].status

String

대출의 현재 상태

[대출대기, 대출반려, 대출중, 반납대기, 반납완료]

대출 정보 목록 조회

요청

Request

GET /manage/borrow-infos?page=0&size=3&status=requests HTTP/1.1
Host: docs.api.com
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMTU3Iiwicm9sZXMiOiJST0xFX-yCrOyEnCxST0xFX-2ajOybkCxST0xFX-2ajOybkCIsImlhdCI6MTcxMTExOTE1NywiZXhwIjoxNzExMTIyNzU3fQ.3v2V369k0ox-H3oPFLMZDuf-wGXJYczdQDSOMh7OODs
Cookie: refreshToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMTU3Iiwicm9sZXMiOiJST0xFX-yCrOyEnCxST0xFX-2ajOybkCxST0xFX-2ajOybkCIsImlhdCI6MTcxMTExOTE1NywiZXhwIjoxNzEyMzI4NzU3fQ.695tJAIeHZAOxxTqpoYfq6ZbeVoOAkunLgFe_eVdjhc

Request Cookies

Name Description

accessToken

ACCESS TOKEN (ROLE_회장, ROLE_부회장, ROLE_사서)

refreshToken

REFRESH TOKEN (ROLE_회장, ROLE_부회장, ROLE_사서)

Request Parameters

파라미터명 필수값 양식 설명

page

페이지 (양수여야 합니다.)

size

한 페이지당 불러올 개수 (default: 10) 최대: 100 최소: 3

search

검색 키워드. 도서명, 저자, 실명에서 검색해옵니다.

status

requests, willreturn, requests_or_willreturn, overdue

만약 빈 값으로 보낼 경우 대출 관련 정보를 모두 가져옵니다.

응답

Response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 1640

{
  "content" : [ {
    "borrowInfoId" : 408,
    "bookId" : 421,
    "bookTitle" : "도서 제목",
    "author" : "도서 저자",
    "totalQuantity" : 1,
    "currentQuantity" : 1,
    "borrowerId" : 1158,
    "borrowerRealName" : "mXtdmyStkJ",
    "requestDatetime" : null,
    "borrowDateTime" : "2024-03-22T14:52:37",
    "expiredDateTime" : "2024-04-05T14:52:37",
    "status" : "대출대기"
  }, {
    "borrowInfoId" : 409,
    "bookId" : 422,
    "bookTitle" : "도서 제목",
    "author" : "도서 저자",
    "totalQuantity" : 1,
    "currentQuantity" : 1,
    "borrowerId" : 1159,
    "borrowerRealName" : "AwWzTonQxF",
    "requestDatetime" : null,
    "borrowDateTime" : "2024-03-22T14:52:37",
    "expiredDateTime" : "2024-04-05T14:52:37",
    "status" : "대출대기"
  }, {
    "borrowInfoId" : 410,
    "bookId" : 423,
    "bookTitle" : "도서 제목",
    "author" : "도서 저자",
    "totalQuantity" : 1,
    "currentQuantity" : 1,
    "borrowerId" : 1160,
    "borrowerRealName" : "JiliWsPchI",
    "requestDatetime" : null,
    "borrowDateTime" : "2024-03-22T14:52:37",
    "expiredDateTime" : "2024-04-05T14:52:37",
    "status" : "대출대기"
  } ],
  "pageable" : {
    "sort" : {
      "empty" : true,
      "sorted" : false,
      "unsorted" : true
    },
    "offset" : 0,
    "pageNumber" : 0,
    "pageSize" : 3,
    "paged" : true,
    "unpaged" : false
  },
  "last" : false,
  "totalPages" : 7,
  "totalElements" : 20,
  "first" : true,
  "size" : 3,
  "number" : 0,
  "sort" : {
    "empty" : true,
    "sorted" : false,
    "unsorted" : true
  },
  "numberOfElements" : 3,
  "empty" : false
}

Response Fields

Path Type Description

content[].borrowInfoId

Number

대출 정보 ID

content[].bookId

Number

대출할 책의 ID

content[].bookTitle

String

대출할 책의 제목

content[].author

String

대출할 책의 저자

content[].totalQuantity

Number

대출할 책의 전체 수량

content[].currentQuantity

Number

대출할 책의 남은 수량

content[].borrowerId

Number

대출자의 ID

content[].borrowerRealName

String

대출자의 실명

content[].requestDatetime

Null

대출 요청을 한 시간 (양식: yyyy-MM-dd’T’HH:mm:ss)

content[].borrowDateTime

String

대출 승인을 한 시간 (양식: yyyy-MM-dd’T’HH:mm:ss)

content[].expiredDateTime

String

반납 예정 시간 (양식: yyyy-MM-dd’T’HH:mm:ss)

content[].status

String

대출의 현재 상태

[대출대기, 대출반려, 대출중, 반납대기, 반납완료]

empty

Boolean

가져오는 페이지가 비어 있는 지

first

Boolean

첫 페이지인지

last

Boolean

마지막 페이지인지

number

Number

페이지 number (0부터 시작)

numberOfElements

Number

현재 페이지의 데이터 개수

pageable

Object

페이지에 대한 부가 정보

sort.empty

Boolean

정렬 기준이 비어 있는 지

sort.sorted

Boolean

정렬이 되었는지

sort.unsorted

Boolean

정렬이 되지 않았는지

totalPages

Number

총 페이지 수

totalElements

Number

총 데이터 개수

size

Number

한 페이지당 데이터 개수

대출 승인

호출 시 해당 책의 currentQuantity가 1 감소합니다.

요청

Request

POST /manage/borrow-infos/467/requests-approve HTTP/1.1
Host: docs.api.com
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjE5Iiwicm9sZXMiOiJST0xFX-yCrOyEnCxST0xFX-2ajOybkCxST0xFX-2ajOybkCIsImlhdCI6MTcxMTExOTE1OCwiZXhwIjoxNzExMTIyNzU4fQ.oc4QXi4jVoAff4a1NBk3NQ8oTIAZvFAH1_cNqaw5KEA
Cookie: refreshToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjE5Iiwicm9sZXMiOiJST0xFX-yCrOyEnCxST0xFX-2ajOybkCxST0xFX-2ajOybkCIsImlhdCI6MTcxMTExOTE1OCwiZXhwIjoxNzEyMzI4NzU4fQ.hCRI23KZcbQ7v8b71qZ6H-6oxX3KGL0x-moxmCLIdlE
Content-Type: application/x-www-form-urlencoded

Request Cookies

Name Description

accessToken

ACCESS TOKEN (ROLE_회장, ROLE_부회장, ROLE_사서)

refreshToken

REFRESH TOKEN (ROLE_회장, ROLE_부회장, ROLE_사서)

Path Variables

Table 4. /manage/borrow-infos/{borrowId}/requests-approve
Parameter Description

borrowId

대출 ID

응답

Response

HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

대출 거절

요청

Request

POST /manage/borrow-infos/468/requests-deny HTTP/1.1
Host: docs.api.com
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjIxIiwicm9sZXMiOiJST0xFX-yCrOyEnCxST0xFX-2ajOybkCxST0xFX-2ajOybkCIsImlhdCI6MTcxMTExOTE1OCwiZXhwIjoxNzExMTIyNzU4fQ.4HPOqcUHu_FTIZTRusFdeCszu5IkZ8kM41Jo3PlE6ek
Cookie: refreshToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjIxIiwicm9sZXMiOiJST0xFX-yCrOyEnCxST0xFX-2ajOybkCxST0xFX-2ajOybkCIsImlhdCI6MTcxMTExOTE1OCwiZXhwIjoxNzEyMzI4NzU4fQ.6H_xMSsI4ozdRhgeXSBBfWVP_IXqk_JlJi5AdSqlNsc
Content-Type: application/x-www-form-urlencoded

Request Cookies

Name Description

accessToken

ACCESS TOKEN (ROLE_회장, ROLE_부회장, ROLE_사서)

refreshToken

REFRESH TOKEN (ROLE_회장, ROLE_부회장, ROLE_사서)

Path Variables

Table 5. /manage/borrow-infos/{borrowId}/requests-deny
Parameter Description

borrowId

대출 ID

응답

Response

HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

반납 승인

호출 시 해당 책의 currentQuantity가 1 증가합니다.

요청

Request

POST /manage/borrow-infos/470/return-approve HTTP/1.1
Host: docs.api.com
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjI1Iiwicm9sZXMiOiJST0xFX-yCrOyEnCxST0xFX-2ajOybkCxST0xFX-2ajOybkCIsImlhdCI6MTcxMTExOTE1OCwiZXhwIjoxNzExMTIyNzU4fQ.o2bW3OxXPzlS-HJ_lXyZSS3FHOIZHqjnqgf9j6q5yb8
Cookie: refreshToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjI1Iiwicm9sZXMiOiJST0xFX-yCrOyEnCxST0xFX-2ajOybkCxST0xFX-2ajOybkCIsImlhdCI6MTcxMTExOTE1OCwiZXhwIjoxNzEyMzI4NzU4fQ.ufSj_N6BtPc6VLBkpxkxW11GrJcDF8pi4hsbC4L8_3Y
Content-Type: application/x-www-form-urlencoded

Request Cookies

Name Description

accessToken

ACCESS TOKEN (ROLE_회장, ROLE_부회장, ROLE_사서)

refreshToken

REFRESH TOKEN (ROLE_회장, ROLE_부회장, ROLE_사서)

Path Variables

Table 6. /manage/borrow-infos/{borrowId}/return-approve
Parameter Description

borrowId

대출 ID

응답

Response

HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

반납 거절

호출 시 해당 대여 기록은 "대출" 상태로 남습니다.

요청

Request

POST /manage/borrow-infos/471/return-deny HTTP/1.1
Host: docs.api.com
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjI3Iiwicm9sZXMiOiJST0xFX-2ajOybkCxST0xFX-yCrOyEnCxST0xFX-2ajOybkCIsImlhdCI6MTcxMTExOTE1OCwiZXhwIjoxNzExMTIyNzU4fQ.nRbQtMO4po0HtjQYuZV0oBQQc7juelHzSEPeOShOtKA
Cookie: refreshToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjI3Iiwicm9sZXMiOiJST0xFX-2ajOybkCxST0xFX-yCrOyEnCxST0xFX-2ajOybkCIsImlhdCI6MTcxMTExOTE1OCwiZXhwIjoxNzEyMzI4NzU4fQ.EcVKVLwJcTTZwUgOERk3x2bPzgEX_K0hciw24UpQ8M4
Content-Type: application/x-www-form-urlencoded

Request Cookies

Name Description

accessToken

ACCESS TOKEN (ROLE_회장, ROLE_부회장, ROLE_사서)

refreshToken

REFRESH TOKEN (ROLE_회장, ROLE_부회장, ROLE_사서)

Path Variables

Table 7. /manage/borrow-infos/{borrowId}/return-deny
Parameter Description

borrowId

대출 ID

응답

Response

HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY

대출 현황 로그 목록 조회

요청

Request

GET /manage/borrow-infos/logs?page=0&size=3&searchType=&search= HTTP/1.1
Host: docs.api.com
Cookie: accessToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjMyIiwicm9sZXMiOiJST0xFX-yCrOyEnCxST0xFX-2ajOybkCxST0xFX-2ajOybkCIsImlhdCI6MTcxMTExOTE1OCwiZXhwIjoxNzExMTIyNzU4fQ.mla-iOP1juqgZcyICMqdiWkF9zRcRbxOF41DKG0cvSs
Cookie: refreshToken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiIxMjMyIiwicm9sZXMiOiJST0xFX-yCrOyEnCxST0xFX-2ajOybkCxST0xFX-2ajOybkCIsImlhdCI6MTcxMTExOTE1OCwiZXhwIjoxNzEyMzI4NzU4fQ.mFhltrCBx3YQPn2qQ7laoPapBR03wSCOwPmj2Df-7ho

Request Cookies

Name Description

accessToken

ACCESS TOKEN (ROLE_회장, ROLE_부회장, ROLE_사서)

refreshToken

REFRESH TOKEN (ROLE_회장, ROLE_부회장, ROLE_사서)

Request Parameters

파라미터명 필수값 양식 설명

page

페이지 (양수여야 합니다.)

size

한 페이지당 불러올 개수 (default: 10) 최대: 100 최소: 3

search

검색 키워드. 도서명, 저자, 실명에서 검색해옵니다.

searchType

대출중, 반납대기, 반납완료, 대출반려, 전체

만약 null로 보낼 경우 대출 관련 정보를 모두 가져옵니다.

응답

Response

HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
X-Content-Type-Options: nosniff
X-XSS-Protection: 0
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
Pragma: no-cache
Expires: 0
X-Frame-Options: DENY
Content-Length: 1547

{
  "content" : [ {
    "borrowInfoId" : 1,
    "bookId" : 1,
    "bookTitle" : "책 제목",
    "author" : "책 저자",
    "borrowerId" : 1,
    "borrowerRealName" : "실명",
    "borrowDateTime" : "2024-03-22T14:52:38",
    "expireDateTime" : "2024-04-05T14:52:38",
    "returnDateTime" : "2024-03-22T14:52:38",
    "rejectDateTime" : null,
    "status" : "반납완료"
  }, {
    "borrowInfoId" : 1,
    "bookId" : 1,
    "bookTitle" : "책 제목",
    "author" : "책 저자",
    "borrowerId" : 1,
    "borrowerRealName" : "실명",
    "borrowDateTime" : "2024-03-22T14:52:38",
    "expireDateTime" : "2024-04-05T14:52:38",
    "returnDateTime" : null,
    "rejectDateTime" : null,
    "status" : "반납대기"
  }, {
    "borrowInfoId" : 1,
    "bookId" : 1,
    "bookTitle" : "책 제목",
    "author" : "책 저자",
    "borrowerId" : 1,
    "borrowerRealName" : "실명",
    "borrowDateTime" : "2024-03-22T14:52:38",
    "expireDateTime" : "2024-04-05T14:52:38",
    "returnDateTime" : null,
    "rejectDateTime" : "2024-03-22T14:52:38",
    "status" : "대출반려"
  } ],
  "pageable" : {
    "sort" : {
      "empty" : true,
      "sorted" : false,
      "unsorted" : true
    },
    "offset" : 0,
    "pageNumber" : 0,
    "pageSize" : 3,
    "paged" : true,
    "unpaged" : false
  },
  "last" : false,
  "totalPages" : 2,
  "totalElements" : 4,
  "first" : true,
  "size" : 3,
  "number" : 0,
  "sort" : {
    "empty" : true,
    "sorted" : false,
    "unsorted" : true
  },
  "numberOfElements" : 3,
  "empty" : false
}

Response Fields

Path Type Description

content[].borrowInfoId

Number

대출 정보 ID (대출 로그 id는 아닙니다)

content[].bookId

Number

대출한 책의 ID

content[].bookTitle

String

대출한 책의 제목

content[].author

String

대출한 책의 저자

content[].borrowerId

Number

대출한 유저의 Id

content[].borrowerRealName

String

대출한 유저의 실명

content[].borrowDateTime

String

대출을 한 시간 (양식: yyyy-MM-dd’T’HH:mm:ss)

content[].expireDateTime

String

반납 예정 시간 (양식: yyyy-MM-dd’T’HH:mm:ss)

content[].returnDateTime

String

반납 승인을 한 시간 (양식: yyyy-MM-dd’T’HH:mm:ss)

content[].rejectDateTime

String

반납 반려를 한 시간 (양식: yyyy-MM-dd’T’HH:mm:ss)

content[].status

String

로그가 찍힐 때의 대출 상태. 종류: 대출중, 반납대기, 반납완료, 대출반려, 전체

empty

Boolean

가져오는 페이지가 비어 있는 지

first

Boolean

첫 페이지인지

last

Boolean

마지막 페이지인지

number

Number

페이지 number (0부터 시작)

numberOfElements

Number

현재 페이지의 데이터 개수

pageable

Object

페이지에 대한 부가 정보

sort.empty

Boolean

정렬 기준이 비어 있는 지

sort.sorted

Boolean

정렬이 되었는지

sort.unsorted

Boolean

정렬이 되지 않았는지

totalPages

Number

총 페이지 수

totalElements

Number

총 데이터 개수

size

Number

한 페이지당 데이터 개수