Homestay (Akomodasi)
Dokumentasi API untuk pencarian, eksplorasi, dan pengecekan ketersediaan homestay atau penginapan di desa wisata.
Endpoint Overview
| Method | Endpoint | Deskripsi |
|---|---|---|
| GET | /homestay | Mengambil daftar homestay dengan dukungan filter & sorting. |
| GET | /homestay/:slug | Mengambil detail lengkap homestay dan daftar tipe kamar. |
| GET | /homestay/filter_option | Mengambil daftar master opsi filter (fasilitas, jenis, dll). |
| GET | /homestay/:slug/rooms | Mengambil daftar tipe kamar yang tersedia di homestay tersebut. |
| GET | /homestay/:slug/rooms/:room_id/availability | Mengecek ketersediaan & kalkulasi harga final (checkout ready). |
1. List Homestay
Mendapatkan daftar homestay dengan fitur filtrasi yang komprehensif.
- URL:
/homestay - Method:
GET - Query Parameters:
page(default: 1): Nomor halaman.max(default: 10): Item per halaman.dates: Rentang tanggal check-in & check-out (Contoh:2026-03-24,2026-03-28).price_range: Rentang harga min & max (Contoh:200000,1500000).facilities: Filter fasilitas (Contoh:wifi,pool).
- Response (200 OK):
{
"total_rows": 150,
"rows": [
{
"product_name": "Villa Kaca",
"slug": "villa-kaca",
"min_price": 500000,
"min_price_discount": 450000,
"province": "Bali"
}
]
}
2. Room List
Mendapatkan semua tipe kamar yang tersedia dalam satu homestay untuk diproses lebih lanjut.
- URL:
/homestay/:slug/rooms - Method:
GET - Response (200 OK):
{
"data": [
{
"id": "uuid-room-01",
"room_name": "King Room Garden View",
"bed_size": "King Size",
"room_quota": 3,
"min_price": 500000,
"min_price_discount": 450000
}
]
}
3. Availability & Price Calculation
Endpoint kritikal yang wajib dipanggil sebelum melakukan checkout untuk memastikan kamar masih tersedia dan harga sudah terhitung (termasuk pajak/layanan jika ada).
- URL:
/homestay/:slug/rooms/:room_id/availability - Method:
GET - Query Parameters (Wajib):
check_in: Tanggal check-in (YYYY-MM-DD).check_out: Tanggal check-out (YYYY-MM-DD).
- Response (200 OK):
{
"data": {
"is_available": true,
"price_per_night": 500000,
"price_per_night_discount": 450000,
"total_price": 2500000,
"total_price_discount": 2250000
}
}
Catatan Penting:
- Diskon: Jika
min_price_discountbernilai0, berarti tidak ada promo aktif. Gunakanmin_pricesebagai harga acuan utama. - Sorting: Gunakan parameter
sortdengan nilailow_price,highest_rating, ataurecently_addeduntuk mengurutkan hasil.
🔥 Uji Coba API (Simulator)
Gunakan simulator di bawah ini untuk mencoba seluruh endpoint di atas secara langsung. Anda dapat mengubah URL, Method, Headers, dan Body sesuai kebutuhan.