[BE] API 정보 - ChoiGiSung/airbnb GitHub Wiki

postman

https://documenter.getpostman.com/view/15264844/TzRYbj8z

heroku

https://coco-airbnb.herokuapp.com

aws

http://13.125.140.183

API 설계

1. 검색 전 금액을 보여주는 부분

구분 요청 메서드 URL
검색 전 금액을 보여주는 부분 GET /search/prices?check-in=:check-in&check-out=:check-out&city-name=:city-name

쿼리 스트링

이름 예시
:check-in 체크인 날짜 2021-04-17
:check-out 체크아웃 날짜 2021-04-19
:city-name 도시 이름 서울

Response 포맷


{
    "prices" : [
        1000,
        2000,
        30000,
        40000
    ]
}

2 검색 API

구분 요청 메서드 URL
검색 GET /search?check-in=:check-in&check-out=:check-out&city-name=:city-name&adult=:adult&child=:child&baby=:baby&price-min=:price-min&price-max=:price-max

쿼리 스트링

이름 예시
:check-in 체크인 날짜 2021-04-17
:check-out 체크아웃 날짜 2021-04-19
:adult 성인 수 3
:child 어린이 수 2
:baby 유아 수 0
:price-min 최저 가격 200
:price-max 최고 가격 300000

Response 포맷


{
    "rooms" : [
        {
            "id" : 1,
            "name" : "살며시귀기울이면#심장소리만큼 하이얀 파도소리가 들려요 #영진#주문진#도깨비촬영지#커피거리",
            "price_per_date" : 96000,
            "home_details" : {
                "max_guest" : 3,
                "bed" : 1,
                "bathroom" : 3
            },
            "type" : "아파트",
            "wish" : true,
            "thumbnail_image" : "https://a0.muscache.com/im/pictures/d9fb7454-fd02-4faf-8712-aa1f84f0f60f.jpg?im_w=720",
            "coordinate": {
                "latitude": 37.94032,
                "longitude": 128.78549
             },
            "review" : {
                "star" : 4.8,
                "comment" : 127
            },
            "total_price" : 1905600,
            "description": "서울특별시의 집 전체"
        },
                {
            "id" : 2,
            "name" : "[블루테라] 오션 #5, 속초더블루마크, 오션뷰, 속초해수욕장 도보 5분",
            "price_per_date" : 96000,
            "home_details" : {
                "max_guest" : 3,
                "bed" : 1,
                "bathroom" : 3
            },
            "type" : "아파트",
            "wish" : false,
            "thumbnail_image" : "https://a0.muscache.com/im/pictures/d9fb7454-fd02-4faf-8712-aa1f84f0f60f.jpg?im_w=720",
            "coordinate": {
                "latitude": 38.19136,
                "longitude": 128.60255
            },
            "review" : {
                "star" : 4.8,
                "comment" : 127
            },
            "total_price" : 1905600,
            "description": "서울특별시의 집 전체"

        },
                {
            "id" : 3,
            "name" : "JJ워커스",
            "price_per_date" : 96000,
            "home_details" : {
                "max_guest" : 3,
                "bed" : 1,
                "bathroom" : 3
            },
            "type" : "아파트",
            "wish" : true,
            "thumbnail_image" : "https://a0.muscache.com/im/pictures/d9fb7454-fd02-4faf-8712-aa1f84f0f60f.jpg?im_w=720",
            "coordinate": {
                "latitude": 37.55222,
                "longitude": 126.97341
            },
            "review" : {
                "star" : 4.8,
                "comment" : 127
            },
            "total_price" : 1905600,
            "description": "서울특별시의 집 전체"
        }
    ]
}

2-2 지도 검색 API

구분 요청 메서드 URL
검색 GET /search/location?check-in=:check-in&check-out=:check-out&adult=:adult&child=:child&baby=:baby&price-min=:price-min&price-max=:price-max&latitude=:latitude&longitude=:longitude

쿼리 스트링

이름 예시
:check-in 체크인 날짜 2021-04-17
:check-out 체크아웃 날짜 2021-04-19
:adult 성인 수 3
:child 어린이 수 2
:baby 유아 수 0
:price-min 최저 가격 200
:price-max 최고 가격 300000
:latitude 위도 37.0
:longitude 경도 126.0

Response 포맷


{
    "rooms" : [
        {
            "id" : 1,
            "name" : "살며시귀기울이면#심장소리만큼 하이얀 파도소리가 들려요 #영진#주문진#도깨비촬영지#커피거리",
            "price_per_date" : 96000,
            "home_details" : {
                "max_guest" : 3,
                "bed" : 1,
                "bathroom" : 3
            },
            "type" : "아파트",
            "wish" : true,
            "thumbnail_image" : "https://a0.muscache.com/im/pictures/d9fb7454-fd02-4faf-8712-aa1f84f0f60f.jpg?im_w=720",
            "coordinate": {
                "latitude": 37.94032,
                "longitude": 128.78549
             },
            "review" : {
                "star" : 4.8,
                "comment" : 127
            },
            "total_price" : 1905600,
            "description": "서울특별시의 집 전체"
        },
                {
            "id" : 2,
            "name" : "[블루테라] 오션 #5, 속초더블루마크, 오션뷰, 속초해수욕장 도보 5분",
            "price_per_date" : 96000,
            "home_details" : {
                "max_guest" : 3,
                "bed" : 1,
                "bathroom" : 3
            },
            "type" : "아파트",
            "wish" : false,
            "thumbnail_image" : "https://a0.muscache.com/im/pictures/d9fb7454-fd02-4faf-8712-aa1f84f0f60f.jpg?im_w=720",
            "coordinate": {
                "latitude": 38.19136,
                "longitude": 128.60255
            },
            "review" : {
                "star" : 4.8,
                "comment" : 127
            },
            "total_price" : 1905600,
            "description": "서울특별시의 집 전체"

        },
                {
            "id" : 3,
            "name" : "JJ워커스",
            "price_per_date" : 96000,
            "home_details" : {
                "max_guest" : 3,
                "bed" : 1,
                "bathroom" : 3
            },
            "type" : "아파트",
            "wish" : true,
            "thumbnail_image" : "https://a0.muscache.com/im/pictures/d9fb7454-fd02-4faf-8712-aa1f84f0f60f.jpg?im_w=720",
            "coordinate": {
                "latitude": 37.55222,
                "longitude": 126.97341
            },
            "review" : {
                "star" : 4.8,
                "comment" : 127
            },
            "total_price" : 1905600,
            "description": "서울특별시의 집 전체"
        }
    ]
}

3. 방 세부사항 API

구분 요청 메서드 URL
방 세부사항 GET /rooms/:room_id

Response 포맷

{
    "id" : 1,
    "name" : "살며시귀기울이면#심장소리만큼 하이얀 파도소리가 들려요 #영진#주문진#도깨비촬영지#커피거리",
    "host" : {
        "name" : "Mr.Kim",
        "image" : "https://a0.muscache.com/im/pictures/user/7822f895-df8a-4b0f-9035-0d3b3afbdc3d.jpg?aki_policy=profile_x_medium"
    },
    "home_details" : {
        "max_guest" : 3,
        "bed" : 1,
        "bathroom" : 3
    },
    "type" : "아파트",
    "price_per_date" : 96000,
    "description" : "2018년 10월 신규 건물로서 속초 시내에 위치하여 로데오거리, 수산관광시장, 중앙시장,크루즈모항 등 관광지 식당가가 모두 도보로 5분이내로 접근이 가능하고, 속초항 바다부터 설악산까지 조망되는 훌륭한 조망권도 일품입니다. 실내 취사가 가능하며 최신식 최고급 소재의 실내 인테리어까지 갖추고있습니다. 감사합니다.* 다수의 객실보유중입니다.\n 예약달력에서 만실이더라도 문의주시면 다른 객실로 안내해 드리겠습니다.\n^^*** 주차는 지하주차장에 하실 수 있습니다.다만, 주차장이 꽉 찰 경우, 유료 주차장인 로데오주차장이 있습니다.주차비는 지원드릴 수 없다는 점을 참고해주시길 바랍니다.**",
    "city_name" : "서울",
    "wish" : true,
    "coordinate": {
        "latitude": 37.94032,
        "longitude": 128.78549
    },
    "images" : [
        "https://a0.muscache.com/im/pictures/d62aed28-5b79-439d-b26d-b065b2f1a25d.jpg?im_w=720",
        "https://a0.muscache.com/im/pictures/787a4846-b5ba-4ab2-be52-82ac556ab984.jpg?im_w=720",
        "https://a0.muscache.com/im/pictures/51d1beb3-95d3-4f83-8aaf-cb59e3ac01d0.jpg?im_w=720"
    ],
    "review" : {
        "star" : 4.8,
        "comment" : 127
    },
    "additional_cost" : {
        "week_sale_percent" : 4,
        "cleaning_fee" : 20000,
        "service_fee_percent" : 4,
        "lodgment_fee_percent" : 4
    },
    "non_reservation_date" : [
        {
            "check_in" : "2021-04-02",
            "check_out" : "2021-04-05",
        },
        {
            "check_in" : "2021-04-02",
            "check_out" : "2021-04-05",
        }
    ]


}

4. 근처의 인기 여행지 API

구분 요청 메서드 URL
근처의 인기 여행지 GET /cities

Response 포맷

{
cities: [
{
name: "강원",
image_url: "https://a0.muscache.com/im/pictures/71e23854-a3c7-491c-b715-6e86233a293f.jpg?im_q=medq&im_w=240"
},
{
name: "경기",
image_url: "https://a0.muscache.com/im/pictures/71e23854-a3c7-491c-b715-6e86233a293f.jpg?im_q=medq&im_w=240"
},
{
name: "광주",
image_url: "https://a0.muscache.com/im/pictures/71e23854-a3c7-491c-b715-6e86233a293f.jpg?im_q=medq&im_w=240"
},
{
name: "대전",
image_url: "https://a0.muscache.com/im/pictures/71e23854-a3c7-491c-b715-6e86233a293f.jpg?im_q=medq&im_w=240"
},
{
name: "부산",
image_url: "https://a0.muscache.com/im/pictures/71e23854-a3c7-491c-b715-6e86233a293f.jpg?im_q=medq&im_w=240"
},
{
name: "서울",
image_url: "https://a0.muscache.com/im/pictures/71e23854-a3c7-491c-b715-6e86233a293f.jpg?im_q=medq&im_w=240"
},
{
name: "전주",
image_url: "https://a0.muscache.com/im/pictures/71e23854-a3c7-491c-b715-6e86233a293f.jpg?im_q=medq&im_w=240"
},
{
name: "제주",
image_url: "https://a0.muscache.com/im/pictures/71e23854-a3c7-491c-b715-6e86233a293f.jpg?im_q=medq&im_w=240"
}
]
}

5. 예약 API

구분 요청 메서드 URL
예약 POST /rooms/:room_id/reservations

Authorization 헤더에 JWT 추가(Bearer eyJlw1F33huTQLOwOczHynzSg~~)

Request 포맷

{
    "check_in" : "2021-04-17",
    "check_out" : "2021-05-01",
    "total_price" : 462118,
    "adult" : 3,
    "child" : 2,
    "baby" : 0

}

Response 포맷

  • 성공시 200 상태코드로 응답이 온다.
  • 실패시 200 외의 상태코드로 응답이 온다. (ex 400, 403, ...)

6. 예약 취소 API

구분 요청 메서드 URL
예약 취소 DELETE /rooms/:room_id/reservations/:reservation_id

Authorization 헤더에 JWT 추가(Bearer eyJlw1F33huTQLOwOczHynzSg~~)

Response 포맷

  • 성공시 200 상태코드로 응답이 온다.
  • 실패시 200 외의 상태코드로 응답이 온다. (ex 400, 403, ...)

// 미정

7. 위시 리스트 토글 API

구분 요청 메서드 URL
위시 리스트 토글 PATCH /rooms/:room_id/wish

Response 포맷

  • 성공시 200 상태코드로 응답이 온다.
  • 실패시 200 외의 상태코드로 응답이 온다. (ex 400, 403, ...)