Skip to content
This repository has been archived by the owner on Apr 22, 2023. It is now read-only.

API 명세서

JaeSeoKim edited this page Dec 17, 2020 · 1 revision

/api/search

GET - 책 검색

params

q : 검색어

return - JSON

// GET /api/search?q=수학
{
    "ok": true, // 오류 발생 여부
    "bookList": [ // 검색된 책 목록
        {
            "book": [ // 실제 소유한 책 DB키값
                "5fd9fb9ebf4fa1905e9044a9",
                "5fda01afbf4fa1905e9044aa",
                "5fda01c5bf4fa1905e9044ab",
                "5fda02e7bf4fa1905e9044ac"
            ],
            "_id": "5fd9fae02f3fae8db6337289", // bookinfo의 고유 db키값
            "name": "수학의 정석!", // 책 제목
            "author": "홍성대", // 책 저자
            "publisher": "42서울", // 출판사
        },
       	{
            "book": [
                "5fd9fb9ebf4fa1905e9044a9",
                "5fda01c5bf4fa1905e9044ab",
            ], // 실제 소유한 책 DB키값
            "_id": "5fd9fae02f3fae8db6337289",
            "name": "수학2",
            "author": "김재",
            "publisher": "42수학"
        }
    ]
}

/api/book

GET - 책 정보 가져오기

params

id - BookInfo의 DB키값

return - JSON

// GET /api/book?id=5fd9fae02f3fae8db6337289
{
    "ok": true, // 성공 여부
    "BookInfo": { // 책정보 + 재고 정보
        "book": [ // 재고 정보
            {
                "_id": "5fd9fb9ebf4fa1905e9044a9", // 고유 DB키값
                "book_id": "123asdasd1232", // 관리용 고유 바코드
                "status": 0,  // 상태 정보 - 대여 가능
                "donater": "jaeskim", // 기부자
                "book_info": "5fd9fae02f3fae8db6337289", // 연관 책정보 DB키값
                "render_id": null, // 대여자 DB키값
                "rental_date": null , // 대여 시간
            },
            {
                "_id": "5fda02e7bf4fa1905e9044ac", // 고유 DB키값
                "book_id": "asdasdasdasdvvvvasd232", // 관리용 고유 바코드
                "status": 1, // 상태 정보 - 대여중
                "donater": "jaeskim", // 기부자
                "book_info": "5fd9fae02f3fae8db6337289", // 연관 책정보 DB키값 
                "render_id": "sasjdklasjdlkasjkkim", // 대여자 DB키값
              	"rental_date": "2020-12-16T14:33:49.953Z", // 대여 시간
            }
        ],
        "_id": "5fd9fae02f3fae8db6337289", // 
        "name": "asdasdsd",
        "author": "asda",
        "publisher": "asd",
    }
}

POST - 책 정보 생성 (login required, user level 2 이상)

body - JSON

{
  "name": "String && required",
  "author": "String",
  "publisher": "String"
}

return - JSON

// POST /api/book
/* BODY JSON
  {
      "name" : "톨스토이 단편선",
      "author" : "MR.스토이",
      "publisher" : "톨판사"
  }	
*/

{
    "ok": true,
    "BookInfo": {
        "book": [],
        "_id": "5fdaff635723480808d3e05b",
        "name": "톨스토이 단편선",
        "author": "MR.스토이",
        "publisher": "톨판사",
    }
}

PUT - 책 재고 추가 (login required, user level 2 이상)

body - JSON

{
  "book_id" : "String && required", // 관리용 바코드  
	"bookinfo_id" : "String && required", // 책정보 DB키값 
	"donater" : "String", // 기부자 
}

return - JSON

{
    "ok": true, // 성공 여부
    "book": { // 생성된 재고 정보
        "_id": "5fdb01655723480808d3e05c", // DB용 고유 키값
        "book_id": "가123나3456", // 관리용 바코드 값
        "status": 0, // 대여 상태
        "book_info": "5fdaff635723480808d3e05b", // 책정보 DB키값
    }
}

/api/rental

POST - 대여 (rogin required)

RENT_LIMIT

body - JSON

{
	"rentalList" : ["string"] // 대여 책 바코드
}

return - JSON

  • 책 대여 권수 제한 5권!
{
    "ok": true, // 로그인 여부
    "BookInfo": [
        {
            "book_id": "가123나3456",
            "ok": true // 대여 성공
        },
      	{
            "book_id": "나123나3456",
            "ok": false, // 대여 실패
          	"msg" : "대여가 불가능한 도서입니다."
        },
      	{
            "book_id": "다123나3456",
            "ok": true // 대여 성공
        }
    ]
}

DELETE - 반납!

body - JSON

{
	"rentalList" : ["string"] // 반납 책 바코드
}

return - JSON

{
    "ok": true, // 성공 여부
    "BookInfo": [
        {
            "book_id": "가123나3456",
            "ok": true // 반납 성공
        },
      	{
            "book_id": "나123나3456",
            "ok": false, // 반납 실패
          	"msg" : "대여중인 도서가 아닙니다!"
        },
      	{
            "book_id": "다123나3456",
            "ok": true // 반납 성공
        }
    ]
}

/api/manage

PUT - 사용자 권한 변경 (login required, user level 3 이상 - staff only)

body - JSON

{
  "target_name" : "String && required", // 권한 변경 대상
  "level" : "Int && required" // 권한 레벨
}

return - JSON

// Success
{
	"ok" : true
}
// fail - 1
{
	"ok" : false,
  "msg" : "등록되지 않은 사용자 입니다."
}
// fail - 2
{
	"ok" : false,
  "msg" : "권한이 없습니다."
}
// fail - 3
{
	"ok" : false,
  "msg" : "권한 변경이 불가능합니다."
}

/api/user

GET - 사용자 정보 (login required)

return - JSON

{
    "ok": true,
    "user": {
        "rental_list": [],
        "_id": "5fda1e9f36879a9fb28ab277",
        "user_id": 74960,
        "intra_id": "jaeskim",
        "level": 2,
    }
}