유저 API

공통

로그인을 제외한 모든 유저 요청은 JWT access token 이 필요합니다.

Name Description

Authorization

JWT access 토큰

카카오 로그인

Request

Request HTTP Example
POST /oauth2/authorization/kakao HTTP/1.1
Host: 54.180.129.133

Response

카카오 로그인 창

Response HTTP Example
HTTP/1.1 302 Found
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Location: test?response_type=code&client_id=test&scope=test&state=loqfOVlZPJci_ZMQUsu1O9k3CGvHvHjtS0ifdPROfiM%3D&redirect_uri=test

로그인 완료 시 토큰 응답

정보 조회

Request

Request HTTP Example
GET /me HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOjEsInJvbGUiOiJST0xFX0dVRVNUIiwiaWF0IjoxNjU3MTkwNjk4LCJleHAiOjE2NTcxOTQyOTh9.volHJW8gPAGejP90j64Fe1SJY8dyZD5CZ1AvXCtDH2o
Host: 54.180.129.133

Response

Response Data Fields
필드명 타입 양식 설명

data.name

String

이름

data.email

String

이메일

data.profileImageUrl

String

프로필 이미지

data.role

String

회원 권한

Response HTTP Example
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 137

{
  "data" : {
    "name" : "test",
    "email" : "test@gmail.com",
    "profileImageUrl" : "url",
    "role" : "ROLE_GUEST"
  }
}

탈퇴

Request

Request HTTP Example
DELETE /me HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOjEsInJvbGUiOiJST0xFX0dVRVNUIiwiaWF0IjoxNjU3MTkwNjk4LCJleHAiOjE2NTcxOTQyOTh9.volHJW8gPAGejP90j64Fe1SJY8dyZD5CZ1AvXCtDH2o
Host: 54.180.129.133

Response

Response HTTP Example
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

토큰 API

공통

모든 토큰 요청은 JWT access token 이 필요합니다.

Name Description

Authorization

JWT access 토큰

access 토큰 재발급

Request

Request Fields
필드명 타입 양식 설명

refreshToken

String

refresh Token

Request HTTP Example
POST /tokens HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOjEsInJvbGUiOiJST0xFX0dVRVNUIiwiaWF0IjoxNjU3MTkwNjk3LCJleHAiOjE2NTcxOTQyOTd9.SEu2n6VvEzCIaWntOFiUjVA7XBYk4sA3DheSlYgY6VY
Content-Length: 199
Host: 54.180.129.133

{
  "refreshToken" : "eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJkZTUwNmQ5OS1kZTMyLTQzYzAtOWJhOS05NTc1ZTFiMzA2ZDgiLCJpYXQiOjE2NTcxOTA2OTcsImV4cCI6MTY1NzE5NDI5N30.1tW4CioZaB3wuWTkw8A97IN1xvEwsDGemCIPSeSmC7o"
}

Response

Response Data Fields
필드명 타입 양식 설명

data.accessToken

String

access Token

Response HTTP Example
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 200

{
  "data" : {
    "accessToken" : "eyJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOjEsInJvbGUiOiJST0xFX0dVRVNUIiwiaWF0IjoxNjU3MTkwNjk3LCJleHAiOjE2NTcxOTQyOTd9.SEu2n6VvEzCIaWntOFiUjVA7XBYk4sA3DheSlYgY6VY"
  }
}

refresh 토큰 삭제 (로그아웃)

Request

Request HTTP Example
DELETE /tokens HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOjEsInJvbGUiOiJST0xFX0dVRVNUIiwiaWF0IjoxNjU3MTkwNjk3LCJleHAiOjE2NTcxOTQyOTd9.SEu2n6VvEzCIaWntOFiUjVA7XBYk4sA3DheSlYgY6VY
Host: 54.180.129.133

Response

Response HTTP Example
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

예약 게스트 API

공통

모든 예약 게스트 요청은 JWT access token 이 필요합니다.

Name Description

Authorization

JWT access 토큰

예약 생성

Request

Request Fields
필드명 타입 양식 설명

checkIn

String

yyyy-MM-dd

체크인 날짜

checkOut

String

yyyy-MM-dd

체크아웃 날짜

totalGuest

Number

총 인원수

totalPrice

Number

총 가격

roomId

Number

숙소 아이디

Request HTTP Example
POST /reservations HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOjIsInJvbGUiOiJST0xFX0dVRVNUIiwiaWF0IjoxNjU3MTkwNjgyLCJleHAiOjE2NTcxOTQyODJ9.oU86a0bjh65Q6yEEodPJC45ZqoQgRaLdQ5q3-etj_oM
Content-Length: 126
Host: 54.180.129.133

{
  "checkIn" : "2022-07-07",
  "checkOut" : "2022-07-10",
  "totalGuest" : 1,
  "totalPrice" : 300000,
  "roomId" : 1
}

Response

Response Data Fields
필드명 타입 양식 설명

data.reservation.id

Number

아이디

data.reservation.checkIn

String

yyyy-MM-dd

체크인 날짜

data.reservation.checkOut

String

yyyy-MM-dd

체크아웃 날짜

data.reservation.totalGuest

Number

총 인원수

data.reservation.totalPrice

Number

총 가격

data.reservation.reservationStatus

String

예약 상태

data.room.roomId

Number

숙소 아이디

data.room.name

String

숙소 이름

data.room.roomAddress.zipcode

String

숙소 우편번호

data.room.roomAddress.address

String

숙소 주소

data.room.roomAddress.detailAddress

String

숙소 상세주소

data.host.id

Number

호스트 아이디

data.host.name

String

호스트 이름

data.host.email

String

호스트 이메일

Response HTTP Example
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Location: http://localhost:8080/reservations/1
Content-Type: application/json;charset=UTF-8
Content-Length: 538

{
  "data" : {
    "reservation" : {
      "id" : 1,
      "checkIn" : "2022-07-07",
      "checkOut" : "2022-07-10",
      "totalGuest" : 1,
      "totalPrice" : 300000,
      "reservationStatus" : "PENDING"
    },
    "room" : {
      "roomId" : 1,
      "name" : "별빛밤",
      "roomAddress" : {
        "zipcode" : "00000",
        "address" : "창원",
        "detailAddress" : "의창구"
      }
    },
    "host" : {
      "id" : 1,
      "name" : "host",
      "email" : "host@gmail.com"
    }
  }
}

예약 불가능 날짜 조회

Request

Request Parameters
파라미터 필수값 설명

startDate

true

조회 시작 날짜

endDate

true

조회 끝 날짜

Request HTTP Example
GET /rooms/1/reservations-date?startDate=2022-07-07&endDate=2022-08-07 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOjIsInJvbGUiOiJST0xFX0dVRVNUIiwiaWF0IjoxNjU3MTkwNjgzLCJleHAiOjE2NTcxOTQyODN9.IWx4Nc7mT0LlkmTEI8LPedukfci7KfdHrf0h4hwkCFI
Host: 54.180.129.133

Response

Response Data Fields
필드명 타입 양식 설명

data[].checkIn

String

yyyy-MM-dd

예약 체크인 날짜

data[].checkOut

String

yyyy-MM-dd

예약 체크아웃 날짜

Response HTTP Example
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 89

{
  "data" : [ {
    "checkIn" : "2022-07-07",
    "checkOut" : "2022-07-09"
  } ]
}

예약 단건 조회

Request

End Point

/guest/reservations/{reservationId}

Path Parameters
파라미터 양식 설명

reservationId

예약 아이디

Request HTTP Example
GET /guest/reservations/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOjIsInJvbGUiOiJST0xFX0dVRVNUIiwiaWF0IjoxNjU3MTkwNjg0LCJleHAiOjE2NTcxOTQyODR9.HFwdztV6260uFyOGKJy5_bMGcgYZqKaHmXZdP-naeN8
Host: 54.180.129.133

Response

Response Data Fields
필드명 타입 양식 설명

data.reservation.id

Number

아이디

data.reservation.checkIn

String

yyyy-MM-dd

체크인 날짜

data.reservation.checkOut

String

yyyy-MM-dd

체크아웃 날짜

data.reservation.totalGuest

Number

총 인원수

data.reservation.totalPrice

Number

총 가격

data.reservation.reservationStatus

String

예약 상태

data.room.roomId

Number

숙소 아이디

data.room.name

String

숙소 이름

data.room.roomAddress.zipcode

String

숙소 우편번호

data.room.roomAddress.address

String

숙소 주소

data.room.roomAddress.detailAddress

String

숙소 상세주소

data.host.id

Number

호스트 아이디

data.host.name

String

호스트 이름

data.host.email

String

호스트 이메일

Response HTTP Example
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 538

{
  "data" : {
    "reservation" : {
      "id" : 1,
      "checkIn" : "2022-07-07",
      "checkOut" : "2022-07-10",
      "totalGuest" : 3,
      "totalPrice" : 300000,
      "reservationStatus" : "PENDING"
    },
    "room" : {
      "roomId" : 1,
      "name" : "별빛밤",
      "roomAddress" : {
        "zipcode" : "00000",
        "address" : "창원",
        "detailAddress" : "의창구"
      }
    },
    "host" : {
      "id" : 1,
      "name" : "host",
      "email" : "host@gmail.com"
    }
  }
}

예약 다건 조회

Request

Request Parameters
파라미터 필수값 설명

pageSize

true

페이지 사이즈

status

예약 상태

lastReservationId

마지막 예약 아이디

Request HTTP Example
GET /guest/reservations?pageSize=2&status=PENDING HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOjIsInJvbGUiOiJST0xFX0dVRVNUIiwiaWF0IjoxNjU3MTkwNjgyLCJleHAiOjE2NTcxOTQyODJ9.oU86a0bjh65Q6yEEodPJC45ZqoQgRaLdQ5q3-etj_oM
Host: 54.180.129.133

Response

Response Data Fields
필드명 타입 양식 설명

data[].reservation.id

Number

아이디

data[].reservation.checkIn

String

yyyy-MM-dd

체크인 날짜

data[].reservation.checkOut

String

yyyy-MM-dd

체크아웃 날짜

data[].reservation.totalGuest

Number

총 인원수

data[].reservation.totalPrice

Number

총 가격

data[].reservation.reservationStatus

String

예약 상태

data[].room.roomId

Number

숙소 아이디

data[].room.name

String

숙소 이름

data[].room.roomAddress.zipcode

String

숙소 우편번호

data[].room.roomAddress.address

String

숙소 주소

data[].room.roomAddress.detailAddress

String

숙소 상세주소

data[].host.id

Number

호스트 아이디

data[].host.name

String

호스트 이름

data[].host.email

String

호스트 이메일

Response HTTP Example
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 1055

{
  "data" : [ {
    "reservation" : {
      "id" : 2,
      "checkIn" : "2022-07-08",
      "checkOut" : "2022-07-09",
      "totalGuest" : 1,
      "totalPrice" : 100000,
      "reservationStatus" : "PENDING"
    },
    "room" : {
      "roomId" : 1,
      "name" : "host",
      "roomAddress" : {
        "zipcode" : "00000",
        "address" : "창원",
        "detailAddress" : "의창구"
      }
    },
    "host" : {
      "id" : 2,
      "name" : "host",
      "email" : "host@gmail.com"
    }
  }, {
    "reservation" : {
      "id" : 1,
      "checkIn" : "2022-07-07",
      "checkOut" : "2022-07-08",
      "totalGuest" : 1,
      "totalPrice" : 100000,
      "reservationStatus" : "PENDING"
    },
    "room" : {
      "roomId" : 1,
      "name" : "host",
      "roomAddress" : {
        "zipcode" : "00000",
        "address" : "창원",
        "detailAddress" : "의창구"
      }
    },
    "host" : {
      "id" : 1,
      "name" : "host",
      "email" : "host@gmail.com"
    }
  } ]
}

예약 수정

Request

Request Fields
필드명 타입 양식 설명

checkOut

String

체크아웃 날짜

totalGuest

Number

총 인원수

paymentPrice

Number

추가 가격

Request HTTP Example
PUT /reservations/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOjIsInJvbGUiOiJST0xFX0dVRVNUIiwiaWF0IjoxNjU3MTkwNjgxLCJleHAiOjE2NTcxOTQyODF9.a9AlvZ1Auc_bLpxPCuJs8ffuRatFmp-pe3tO3HNzHUk
Content-Length: 82
Host: 54.180.129.133

{
  "checkOut" : "2022-07-12",
  "totalGuest" : 5,
  "paymentPrice" : 200000
}

Response

Response Data Fields
필드명 타입 양식 설명

data.reservation.id

Number

아이디

data.reservation.checkIn

String

yyyy-MM-dd

체크인 날짜

data.reservation.checkOut

String

yyyy-MM-dd

체크아웃 날짜

data.reservation.totalGuest

Number

총 인원수

data.reservation.totalPrice

Number

총 가격

data.reservation.reservationStatus

String

예약 상태

data.room.roomId

Number

숙소 아이디

data.room.name

String

숙소 이름

data.room.roomAddress.zipcode

String

숙소 우편번호

data.room.roomAddress.address

String

숙소 주소

data.room.roomAddress.detailAddress

String

숙소 상세주소

data.host.id

Number

호스트 아이디

data.host.name

String

호스트 이름

data.host.email

String

호스트 이메일

Response HTTP Example
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 538

{
  "data" : {
    "reservation" : {
      "id" : 1,
      "checkIn" : "2022-07-07",
      "checkOut" : "2022-07-12",
      "totalGuest" : 5,
      "totalPrice" : 500000,
      "reservationStatus" : "PENDING"
    },
    "room" : {
      "roomId" : 1,
      "name" : "별빛밤",
      "roomAddress" : {
        "zipcode" : "00000",
        "address" : "창원",
        "detailAddress" : "의창구"
      }
    },
    "host" : {
      "id" : 1,
      "name" : "host",
      "email" : "host@gmail.com"
    }
  }
}

예약 취소

Request

End Point

/guest/reservations/{reservationId}

Path Parameters
파라미터 양식 설명

reservationId

예약 아이디

Request HTTP Example
DELETE /guest/reservations/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOjIsInJvbGUiOiJST0xFX0dVRVNUIiwiaWF0IjoxNjU3MTkwNjgyLCJleHAiOjE2NTcxOTQyODJ9.oU86a0bjh65Q6yEEodPJC45ZqoQgRaLdQ5q3-etj_oM
Host: 54.180.129.133

Response

Response HTTP Example
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

예약 호스트 API

공통

모든 예약 호스트 요청은 JWT access token 이 필요합니다.

Name Description

Authorization

JWT access 토큰

예약 단건 조회

Request

End Point

/host/reservations/{reservationId}

Path Parameters
파라미터 양식 설명

reservationId

예약 아이디

Request HTTP Example
GET /host/reservations/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOjEsInJvbGUiOiJST0xFX0dVRVNUIiwiaWF0IjoxNjU3MTkwNjg1LCJleHAiOjE2NTcxOTQyODV9.00X0VpQwprGIY8-91ARt2Or7whVfzwsrIRQSC7c087g
Host: 54.180.129.133

Response

Response Data Fields
필드명 타입 양식 설명

data.reservation.id

Number

아이디

data.reservation.checkIn

String

yyyy-MM-dd

체크인 날짜

data.reservation.checkOut

String

yyyy-MM-dd

체크아웃 날짜

data.reservation.totalGuest

Number

총 인원수

data.reservation.totalPrice

Number

총 가격

data.reservation.reservationStatus

String

예약 상태

data.room.roomId

Number

숙소 아이디

data.room.name

String

숙소 이름

data.room.roomAddress.zipcode

String

숙소 우편번호

data.room.roomAddress.address

String

숙소 주소

data.room.roomAddress.detailAddress

String

숙소 상세주소

data.guest.id

Number

게스트 아이디

data.guest.name

String

게스트 이름

data.guest.email

String

게스트 이메일

Response HTTP Example
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 541

{
  "data" : {
    "reservation" : {
      "id" : 1,
      "checkIn" : "2022-07-07",
      "checkOut" : "2022-07-10",
      "totalGuest" : 3,
      "totalPrice" : 300000,
      "reservationStatus" : "PENDING"
    },
    "room" : {
      "roomId" : 1,
      "name" : "별빛밤",
      "roomAddress" : {
        "zipcode" : "00000",
        "address" : "창원",
        "detailAddress" : "의창구"
      }
    },
    "guest" : {
      "id" : 2,
      "name" : "guest",
      "email" : "guest@gmail.com"
    }
  }
}

예약 다건 조회

Request

Request Parameters
파라미터 필수값 설명

pageSize

true

페이지 사이즈

status

예약 상태

lastReservationId

마지막 예약 아이디

Request HTTP Example
GET /host/reservations?pageSize=2&status=PENDING HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOjEsInJvbGUiOiJST0xFX0dVRVNUIiwiaWF0IjoxNjU3MTkwNjg0LCJleHAiOjE2NTcxOTQyODR9.uCdm_g0-gtsw2QmDck6kcVaJPYJ7xIqnecvKrZ2EVkE
Host: 54.180.129.133

Response

Response Data Fields
필드명 타입 양식 설명

data[].reservation.id

Number

아이디

data[].reservation.checkIn

String

yyyy-MM-dd

체크인 날짜

data[].reservation.checkOut

String

yyyy-MM-dd

체크아웃 날짜

data[].reservation.totalGuest

Number

총 인원수

data[].reservation.totalPrice

Number

총 가격

data[].reservation.reservationStatus

String

예약 상태

data[].room.roomId

Number

숙소 아이디

data[].room.name

String

숙소 이름

data[].room.roomAddress.zipcode

String

숙소 우편번호

data[].room.roomAddress.address

String

숙소 주소

data[].room.roomAddress.detailAddress

String

숙소 상세주소

data[].guest.id

Number

게스트 아이디

data[].guest.name

String

게스트 이름

data[].guest.email

String

게스트 이메일

Response HTTP Example
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 1063

{
  "data" : [ {
    "reservation" : {
      "id" : 2,
      "checkIn" : "2022-07-08",
      "checkOut" : "2022-07-09",
      "totalGuest" : 1,
      "totalPrice" : 100000,
      "reservationStatus" : "PENDING"
    },
    "room" : {
      "roomId" : 1,
      "name" : "guest",
      "roomAddress" : {
        "zipcode" : "00000",
        "address" : "창원",
        "detailAddress" : "의창구"
      }
    },
    "guest" : {
      "id" : 2,
      "name" : "guest",
      "email" : "guest@gmail.com"
    }
  }, {
    "reservation" : {
      "id" : 1,
      "checkIn" : "2022-07-07",
      "checkOut" : "2022-07-08",
      "totalGuest" : 1,
      "totalPrice" : 100000,
      "reservationStatus" : "PENDING"
    },
    "room" : {
      "roomId" : 1,
      "name" : "guest",
      "roomAddress" : {
        "zipcode" : "00000",
        "address" : "창원",
        "detailAddress" : "의창구"
      }
    },
    "guest" : {
      "id" : 1,
      "name" : "guest",
      "email" : "guest@gmail.com"
    }
  } ]
}

예약 승인

Request

End Point

/host/reservations/{reservationId}

Path Parameters
파라미터 양식 설명

reservationId

예약 아이디

Request HTTP Example
PUT /host/reservations/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOjEsInJvbGUiOiJST0xFX0dVRVNUIiwiaWF0IjoxNjU3MTkwNjg1LCJleHAiOjE2NTcxOTQyODV9.00X0VpQwprGIY8-91ARt2Or7whVfzwsrIRQSC7c087g
Host: 54.180.129.133

Response

Response Data Fields
필드명 타입 양식 설명

data.id

Number

예약 아이디

data.checkIn

String

yyyy-MM-dd

체크인 날짜

data.checkOut

String

yyyy-MM-dd

체크아웃 날짜

data.totalGuest

Number

총 인원수

data.totalPrice

Number

총 가격

data.reservationStatus

String

예약 상태

Response HTTP Example
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 190

{
  "data" : {
    "id" : 1,
    "checkIn" : "2022-07-07",
    "checkOut" : "2022-07-10",
    "totalGuest" : 3,
    "totalPrice" : 300000,
    "reservationStatus" : "APPROVED"
  }
}

예약 취소

Request

End Point

/host/reservations/{reservationId}

Path Parameters
파라미터 양식 설명

reservationId

예약 아이디

Request HTTP Example
DELETE /host/reservations/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOjEsInJvbGUiOiJST0xFX0dVRVNUIiwiaWF0IjoxNjU3MTkwNjg0LCJleHAiOjE2NTcxOTQyODR9.uCdm_g0-gtsw2QmDck6kcVaJPYJ7xIqnecvKrZ2EVkE
Host: 54.180.129.133

Response

Response HTTP Example
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

숙소 API

공통

모든 숙소 조회는 로그인 없이 가능하다.

숙소 필터 검색

Request

Request Parameters
파라미터 필수값 설명

minBeds

최수 침대 수

minBedrooms

최수 침실 수

minBathrooms

최소 욕실 수

minPrice

최소 1박 가격

maxPrice

최대 1박 가격

roomTypes

숙소 유형

roomScopes

숙소 범위

size

true

페이지 사이즈

page

true

페이지 번호

Request HTTP Example
GET /rooms?minBeds=1&minBedrooms=1&minBathrooms=1&minPrice=1&maxPrice=10000000&roomTypes=APARTMENT&roomScopes=PRIVATE&size=10&page=1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Host: 54.180.129.133

Response

Response Data Fields
필드명 타입 양식 설명

data[].id

Number

숙소 아이디

data[].name

String

숙소 이름

data[].price

Number

1박 가격

data[].imagePaths

Array

숙소 이미지 경로

Response HTTP Example
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 123

{
  "data" : [ {
    "id" : 1,
    "name" : "별빛밤",
    "price" : 100000,
    "imagePaths" : [ "test" ]
  } ]
}

숙소 상세 조회

Request

End Point

/rooms/{roomId}

Path Parameters
파라미터 양식 설명

roomId

숙소 아이디

Request HTTP Example
GET /rooms/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Host: 54.180.129.133

Response

Response Data Fields
필드명 타입 양식 설명

data.name

String

숙소 이름

data.price

Number

1박 가격

data.description

String

숙소 설명

data.maxGuestNum

Number

최대 게스트 수

data.zipcode

String

우편번호

data.address

String

주소

data.detailAddress

String

상세 주소

data.bedCnt

Number

침대 수

data.bedRoomCnt

Number

침실 수

data.bathRoomCnt

Number

욕실 수

data.roomType

String

숙소 유형

data.roomScope

String

숙소 범위

data.imagePaths[].imagePath

String

숙소 이미지 경로

Response HTTP Example
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 409

{
  "data" : {
    "name" : "별빛밤",
    "price" : 100000,
    "description" : "방설명",
    "maxGuestNum" : 10,
    "zipcode" : "00000",
    "address" : "창원",
    "detailAddress" : "의창구",
    "bedCnt" : 2,
    "bedRoomCnt" : 1,
    "bathRoomCnt" : 1,
    "roomType" : "APARTMENT",
    "roomScope" : "PRIVATE",
    "imagePaths" : [ {
      "imagePath" : "test"
    } ]
  }
}

숙소 호스트 API

공통

모든 숙소 호스트 요청은 JWT access token 이 필요합니다.

Name Description

Authorization

JWT access 토큰

숙소 생성

Request

Request Fields
필드명 타입 양식 설명

name

String

숙소 이름

price

Number

1박 가격

description

String

숙소 설명

maxGuestNum

Number

최대 게스트 수

zipcode

String

우편번호

address

String

주소

detailAddress

String

상세주소

bedCnt

Number

침대 수

bedRoomCnt

Number

침실 수

bathRoomCnt

Number

욕실 수

roomType

String

숙소 유형

roomScope

String

숙소 범위

imagePaths

Array

숙소 이미지 경로

Request HTTP Example
POST /host/rooms HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOjEsInJvbGUiOiJST0xFX0dVRVNUIiwiaWF0IjoxNjU3MTkwNjk1LCJleHAiOjE2NTcxOTQyOTV9.9DJjg4GHhrpiBGb5m72Fyo2TVbVBHW_Hk8CTWcCvR1w
Content-Length: 334
Host: 54.180.129.133

{
  "name" : "별빛밤",
  "price" : 100000,
  "description" : "방설명",
  "maxGuestNum" : 10,
  "zipcode" : "00000",
  "address" : "창원",
  "detailAddress" : "의창구",
  "bedCnt" : 2,
  "bedRoomCnt" : 1,
  "bathRoomCnt" : 1,
  "roomType" : "APARTMENT",
  "roomScope" : "PRIVATE",
  "imagePaths" : [ "test" ]
}

Response

Name Description

Location

숙소 리소스 주소

Response HTTP Example
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Location: /rooms/1

호스트 숙소 조회

Request

Request HTTP Example
GET /host/rooms HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOjEyLCJyb2xlIjoiUk9MRV9HVUVTVCIsImlhdCI6MTY1NzE5MDY5NCwiZXhwIjoxNjU3MTk0Mjk0fQ.qO34Sj39tu7teItlzt4KbSygGeip63in_yf16dknt68
Host: 54.180.129.133

Response

Response Data Fields
필드명 타입 양식 설명

data[].name

String

숙소 이름

data[].price

Number

1박 가격

data[].description

String

숙소 설명

data[].maxGuestNum

Number

최대 게스트 수

data[].zipcode

String

우편번호

data[].address

String

주소

data[].detailAddress

String

상세 주소

data[].bedCnt

Number

침대 수

data[].bedRoomCnt

Number

침실 수

data[].bathRoomCnt

Number

욕실 수

data[].roomType

String

숙소 유형

data[].roomScope

String

숙소 범위

data[].imagePaths[].imagePath

String

숙소 이미지 경로

Response HTTP Example
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 807

{
  "data" : [ {
    "name" : "별빛밤",
    "price" : 100000,
    "description" : "방설명",
    "maxGuestNum" : 10,
    "zipcode" : "00000",
    "address" : "창원",
    "detailAddress" : "의창구",
    "bedCnt" : 2,
    "bedRoomCnt" : 1,
    "bathRoomCnt" : 1,
    "roomType" : "APARTMENT",
    "roomScope" : "PRIVATE",
    "imagePaths" : [ {
      "imagePath" : "test"
    } ]
  }, {
    "name" : "별빛밤",
    "price" : 100000,
    "description" : "방설명",
    "maxGuestNum" : 10,
    "zipcode" : "00000",
    "address" : "창원",
    "detailAddress" : "의창구",
    "bedCnt" : 2,
    "bedRoomCnt" : 1,
    "bathRoomCnt" : 1,
    "roomType" : "APARTMENT",
    "roomScope" : "PRIVATE",
    "imagePaths" : [ {
      "imagePath" : "test"
    } ]
  } ]
}

숙소 수정

Request

End Point

/host/rooms/{roomId}

Path Parameters
파라미터 양식 설명

roomId

숙소 아이디

Request Fields
필드명 타입 양식 설명

name

String

숙소 이름

bedCnt

Number

침대 수

bedRoomCnt

Number

침실 수

bathRoomCnt

Number

욕실 수

description

String

숙소 설명

price

Number

1박 가격

maxGuestNum

Number

최대 게스트 수

Request HTTP Example
PUT /host/rooms/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOjEsInJvbGUiOiJST0xFX0dVRVNUIiwiaWF0IjoxNjU3MTkwNjk1LCJleHAiOjE2NTcxOTQyOTV9.9DJjg4GHhrpiBGb5m72Fyo2TVbVBHW_Hk8CTWcCvR1w
Content-Length: 187
Host: 54.180.129.133

{
  "name" : "수정된 이름",
  "price" : 111111,
  "description" : "수정된 방 설명",
  "maxGuestNum" : 1111,
  "bedCnt" : 11,
  "bedRoomCnt" : 11,
  "bathRoomCnt" : 11
}

Response

Response HTTP Example
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

리뷰 API

공통

모든 요청은 JWT access token 이 필요합니다.

Name Description

Authorization

JWT access 토큰

리뷰 생성

Request

End Point

/reservations/{reservationId}/reviews

Path Parameters
파라미터 양식 설명

reservationId

예약 아이디

Request Fields
필드명 타입 양식 설명

score

Number

리뷰 점수

content

String

리뷰 내용 본문

Request HTTP Example
POST /reservations/1/reviews HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOjEsInJvbGUiOiJST0xFX0dVRVNUIiwiaWF0IjoxNjU3MTkwNjkzLCJleHAiOjE2NTcxOTQyOTN9.A2fZfaalHFK6JjGzTX7akk-ne7eLy0OdZZoUa8CJcd4
Content-Length: 45
Host: 54.180.129.133

{
  "content" : "content",
  "score" : 5
}

Response

Name Description

Location

생성된 리뷰 URI

Response HTTP Example
HTTP/1.1 201 Created
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Location: /reviews/1

본인 리뷰 조회

Request

End Point

/reviews

Request Parameters
파라미터 필수값 설명

score

true

리뷰 점수

size

true

페이지 사이즈

page

true

페이지 번호

Request HTTP Example
GET /reviews?score=1&size=10&page=1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOjMsInJvbGUiOiJST0xFX0dVRVNUIiwiaWF0IjoxNjU3MTkwNjkyLCJleHAiOjE2NTcxOTQyOTJ9.o_Bi-A74DeCcnicrihktiyxyQiawvuUdHKWPGokulyA
Host: 54.180.129.133

Response

Response Data Fields
필드명 타입 양식 설명

data[].score

Number

리뷰 점수

data[].content

String

리뷰 내용 본문

Response HTTP Example
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 72

{
  "data" : [ {
    "score" : 1,
    "content" : "content"
  } ]
}

숙소 리뷰 조회

Request

End Point

/rooms/{roomId}/reviews

Path Parameters
파라미터 양식 설명

roomId

숙소 아이디

Request Parameters
파라미터 필수값 설명

score

true

리뷰 점수

size

true

페이지 사이즈

page

true

페이지 번호

Request HTTP Example
GET /rooms/2/reviews?score=5&size=10&page=1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOjQsInJvbGUiOiJST0xFX0dVRVNUIiwiaWF0IjoxNjU3MTkwNjkxLCJleHAiOjE2NTcxOTQyOTF9.YT5HtD50UXzssu1OOfHUd2XuyvQ8_T1Fhi8G9aiOeh8
Host: 54.180.129.133

Response

Response Data Fields
필드명 타입 양식 설명

data[].score

Number

리뷰 점수

data[].content

String

리뷰 내용 본문

Response HTTP Example
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 284

{
  "data" : [ {
    "score" : 5,
    "content" : "content"
  }, {
    "score" : 5,
    "content" : "content"
  }, {
    "score" : 5,
    "content" : "content"
  }, {
    "score" : 5,
    "content" : "content"
  }, {
    "score" : 5,
    "content" : "content"
  } ]
}

리뷰 수정

Request

End Point

/reviews/{reviewId}

Path Parameters
파라미터 양식 설명

reviewId

리뷰 아이디

Request Fields
필드명 타입 양식 설명

score

Number

리뷰 점수

content

String

리뷰 내용 본문

Request HTTP Example
POST /reviews/1 HTTP/1.1
Content-Type: application/json;charset=UTF-8
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOjEsInJvbGUiOiJST0xFX0dVRVNUIiwiaWF0IjoxNjU3MTkwNjkxLCJleHAiOjE2NTcxOTQyOTF9.W7qL6T2a7s1Gk_kerODSv-5pg3d6g8FTmlBSUTGHpk0
Content-Length: 50
Host: 54.180.129.133

{
  "content" : "edit-content",
  "score" : 2
}

Response

Response Data Fields
필드명 타입 양식 설명

data.score

Number

리뷰 점수

data.content

String

리뷰 내용 본문

Response HTTP Example
HTTP/1.1 200 OK
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers
Content-Type: application/json;charset=UTF-8
Content-Length: 73

{
  "data" : {
    "score" : 2,
    "content" : "edit-content"
  }
}

리뷰 삭제

Request

End Point

/reviews/{reviewId}

Path Parameters
파라미터 양식 설명

reviewId

리뷰 아이디

Request HTTP Example
DELETE /reviews/1 HTTP/1.1
Authorization: Bearer eyJhbGciOiJIUzI1NiJ9.eyJ1c2VySWQiOjEsInJvbGUiOiJST0xFX0dVRVNUIiwiaWF0IjoxNjU3MTkwNjkwLCJleHAiOjE2NTcxOTQyOTB9.iXA3CHyVmgw4dQy__2ojAls1jvxSLT2vGgRf651XeoY
Host: 54.180.129.133

Response

Response HTTP Example
HTTP/1.1 204 No Content
Vary: Origin
Vary: Access-Control-Request-Method
Vary: Access-Control-Request-Headers

이미지 업로드 API

공통

이미지 업로드 시 S3 경로 배열을 반환한다.

이미지 업로드

Request

Part Description

images

이미지 파일 배열

Request HTTP Example
$ curl 'http://54.180.129.133/room-images' -i -X POST \
    -H 'Content-Type: multipart/form-data;charset=UTF-8' \
    -F 'images=@imagefile.jpeg;type=multipart/form-data'

Response

Response Data Fields
필드명 타입 양식 설명

data

Array

s3 이미지 경로 배열

Response HTTP Example
{
  "data" : [ "https://s3.amand.com/0" ]
}