คำขอและการตอบกลับ
หน้านี้อธิบายรูปแบบเนื้อหาคำขอ โครงสร้างการตอบกลับ การแบ่งหน้า รูปแบบวันที่และจำนวนเงิน รวมถึงวิธีตีความรหัสสถานะ HTTP
เนื้อหาคำขอ#
เอนด์พอยต์ใช้รูปแบบเนื้อหาอย่างใดอย่างหนึ่งจากสองรูปแบบ หน้าเอกสารอ้างอิงของแต่ละเอนด์พอยต์จะระบุว่าใช้แบบใด
| รูปแบบ | Content-Type | ใช้กับ |
|---|---|---|
| ฟิลด์แบบฟอร์ม | application/x-www-form-urlencoded หรือ multipart/form-data | การเข้าสู่ระบบ รายการห้องพัก การตรวจสอบคูปอง รายการประเทศ |
| JSON | application/json | การส่งการจอง (BookingPushRQ) การเริ่มชำระเงิน |
| Query string | — | เอนด์พอยต์ GET ทั้งหมด |
ฟิลด์แบบอาร์เรย์ในเนื้อหาแบบฟอร์มจะส่งซ้ำโดยใช้วงเล็บเหลี่ยม: childAges[]=7&childAges[]=12 เนื้อหาแบบ JSON ต้องเข้ารหัสเป็น UTF-8
โครงสร้างการตอบกลับ#
การตอบกลับเป็น JSON ส่วนใหญ่มีแฟล็ก success และรายการต่าง ๆ จะส่งกลับมาพร้อม count และ items:
{
"success": true,
"count": 3,
"items": [
{
"id": 1,
"titleCode": "TRY",
"symbol": "₺",
"price": 1
},
{
"id": 2,
"titleCode": "EUR",
"symbol": "€",
"price": 47.85000000000000142108547152020037174224853515625
}
]
}เมื่อไม่ผ่านการตรวจสอบตามกฎทางธุรกิจ จะส่งคืน success: false พร้อมคำอธิบายข้อผิดพลาดในรูปแบบใดรูปแบบหนึ่งจากสองรูปแบบนี้:
{
"success": false,
"message": "online_cupon_is_not_found"
}{
"success": false,
"errorMessage": "Invalid parameters.",
"errorCode": 10022
}ข้อยกเว้น: เอนด์พอยต์ข้อมูลติดต่อส่งคืนออบเจ็กต์เปล่าโดยไม่มีโครงสร้างครอบ และการส่งการจองส่งคืนออบเจ็กต์ BookingPushRS ทั้งสองกรณีแสดงไว้ในเอกสารอ้างอิง
รหัสสถานะ HTTP#
| รหัส | เมื่อใด | สิ่งที่ต้องทำ |
|---|---|---|
| 200 | ประมวลผลคำขอแล้ว (สำเร็จหรือเกิดข้อผิดพลาดตามกฎทางธุรกิจ) | ตรวจสอบ success, message / errorCode |
| 401 | ไม่มีโทเค็น โทเค็นผิดรูปแบบ หรือไม่รู้จักโทเค็น | เข้าสู่ระบบใหม่ ดูที่การยืนยันตัวตน |
| 404 | พารามิเตอร์พาธไม่ตรงกับรายการใด (เช่น /hotel/{hotelID}/…, /payment/type/{paymentType}) | ตรวจสอบ ID |
| 405 | ใช้เมธอด HTTP ผิด | ใช้เมธอดตามที่ระบุในเอกสารอ้างอิง (รายการประเทศและรายการห้องพักใช้ POST) |
| 500 | ข้อผิดพลาดของเซิร์ฟเวอร์ที่ไม่คาดคิด | ลองใหม่หลังจากรอสักครู่ หากยังเกิดขึ้นอีก ให้แจ้งฝ่ายสนับสนุนพร้อมแนบคำขอ |
การแบ่งหน้า#
เอนด์พอยต์แบบรายการ (/external/currencies, /external/languages, /external/online/social/media, /external/stock/packages) แบ่งหน้าตามหมายเลขหน้า:
| พารามิเตอร์ | คำอธิบาย | ค่าเริ่มต้น |
|---|---|---|
limit | จำนวนรายการต่อหน้า | 20 |
page | หมายเลขหน้า เริ่มจาก 1 | 1 |
offset | จำนวนรายการที่จะข้าม หากระบุค่านี้ ระบบจะไม่สนใจ page | — |
order | ฟิลด์สำหรับเรียงลำดับ ใส่ - นำหน้าเพื่อเรียงจากมากไปน้อย (-id) ฟิลด์ที่ใช้ได้ระบุไว้ในแต่ละเอนด์พอยต์ | — |
count คือจำนวนรายการทั้งหมด รายการจะหมดเมื่อ page × limit ≥ count
วันที่ เวลา และจำนวนเงิน#
| ประเภท | รูปแบบ | ตัวอย่าง |
|---|---|---|
| วันที่ในคำขอ | YYYY-MM-DD | 2026-08-18 |
| วันที่ของห้องว่าง | YYYY-MM-DD หรือ YYYY-MM-DDTHH:MM:SS | 2026-08-18T12:00:00 |
| วันที่ของราคารายคืน (การตอบกลับ) | DD.MM.YYYY (ฟิลด์ tarih) | 18.08.2026 |
| ช่วงวันของห้องว่าง (การตอบกลับ) | YYYY-MM-DD HH:MM:SS ตั้งแต่ 12:00 น. ถึง 12:00 น. ของวันถัดไป | 2026-08-18 12:00:00 |
| จำนวนเงิน | สตริงทศนิยมสองตำแหน่ง ใช้จุดเป็นตัวคั่น | "965.00" |
| สกุลเงิน | ISO 4217 ตามการตั้งค่าช่องทางออนไลน์ของโรงแรม | TRY |
| เขตเวลา | เขตเวลาของโรงแรม | Europe/Istanbul |
วันเช็กเอาต์ไม่นับเป็นส่วนหนึ่งของการเข้าพัก: 18–20 สิงหาคม คือสองคืน อย่าบวกจำนวนเงินด้วย float ให้ใช้ไลบรารีทศนิยมหรือจำนวนเต็มในหน่วยย่อยของสกุลเงินแทน
ภาษา#
รายการห้องพักรับฟิลด์ language (ISO 639-1: tr, en, de…) และส่งคืนชื่อห้อง ชื่อสิ่งอำนวยความสะดวก และข้อความแสดงข้อผิดพลาดในภาษานั้น ส่วนรายการแพ็กเกจต้องการ languageID ซึ่งได้จากเอนด์พอยต์ภาษา