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, ...)