Untuk mengintegrasikan informasi harga dan ketersediaan, partner harus menerapkan Partner API. Antarmuka ini berbasis REST dan memungkinkan Google mengirimkan panggilan langsung melalui HTTP. Meskipun detail setiap metode API dijelaskan di bagian Referensi, Anda dapat menemukan informasi tentang masalah lintas bidang nanti.
Format permintaan & respons
Awalnya hanya format JSON yang akan didukung. Jika format permintaan atau respons tambahan diperlukan, hubungi tim Transportasi Perjalanan di transport-help@google.com untuk mendiskusikan kasus penggunaan Anda.
Permintaan akan dikirim menggunakan metode HTTP POST, dengan pesan permintaan di isi POST.
Perhatikan bahwa untuk kejelasan struktural, dokumentasi antarmuka API disediakan sebagai definisi pesan Protocol Buffer, dan terjemahan definisi pesan Protocol Buffer ke objek JSON ditentukan oleh pemetaan JSON kanonis, menggunakan opsi untuk memancarkan kolom dengan nilai default dan menggunakan nama kolom proto, bukan nama lowerCamelCase.
Autentikasi
Google mendukung Autentikasi Ringkasan HTTP dan Autentikasi Sertifikat Klien. Semua panggilan HTTP Partner API menggunakan Autentikasi HTTP Digest (dengan nama pengguna dan sandi) atau Autentikasi Sertifikat Klien. Partner harus memberikan nama pengguna dan sandi kepada Google (lihat Konfigurasi Partner), atau Sertifikat Klien SSL.
Kode status & penanganan error
Secara umum, kode status berikut dapat ditampilkan dalam respons HTTP:
Kode HTTP | Deskripsi HTTP | Catatan |
---|---|---|
2xx | Oke | Bukan error; ditampilkan jika berhasil. Isi respons diharapkan berisi hasil yang berhasil (misalnya, TripOptionsResult), bukan respons error. |
400 | Permintaan Tidak Valid | Permintaan yang diterima tidak valid. Respons error khusus metode harus digunakan untuk menampilkan detail error tambahan dalam isi respons. HTTP 400 umumnya hanya boleh digunakan jika Google melakukan kesalahan teknis (misalnya, kolom yang salah nama dalam permintaan). |
403 | Terlarang | Izin ditolak/terlarang (pemanggil dikenal dan ditolak). Respons ini tidak boleh digunakan untuk penolakan yang disebabkan oleh kehabisan beberapa resource (sebagai gantinya, gunakan Terlalu Banyak Permintaan untuk error tersebut). Terlarang tidak boleh digunakan jika pemanggil tidak dapat diidentifikasi (gunakan Tidak Sah untuk error tersebut). |
404 | Tidak ditemukan | Resource yang diminta tidak dapat ditemukan. Respons error khusus metode harus digunakan untuk menampilkan detail error tambahan dalam isi respons. |
429 | Terlalu banyak permintaan | Beberapa resource telah habis, kemungkinan adalah kuota per pengguna. |
500 | Error Server Internal | Error internal. Artinya, beberapa invarian yang diperlukan oleh sistem pokok telah rusak. Kode error ini disediakan untuk error serius dan menunjukkan adanya bug dalam penerapan server API partner. |
503 | Layanan Tidak Tersedia | Layanan tidak tersedia. Kemungkinan besar ini hanya kondisi sementara, yang dapat diperbaiki dengan mencoba kembali menggunakan backoff. |
504 | Waktu Tunggu Gateway Habis | Batas waktu berakhir sebelum operasi selesai. Untuk operasi yang mengubah status sistem, error ini mungkin ditampilkan meskipun operasi telah berhasil diselesaikan. Misalnya, respons berhasil dari suatu server dapat tertunda selama waktu yang cukup lama hingga tenggat waktu berakhir. |
Perhatikan bahwa untuk semua prasyarat, argumen tidak valid, atau error tidak ditemukan:
- respons atau pesan error khusus metode yang ditentukan dalam API harus digunakan.
- kode http yang benar harus digunakan, seperti yang ditentukan dalam kode khusus metode (lihat
misalnya,
TripOptionsErrorType
)
Hal ini memungkinkan informasi yang lebih mendetail tentang jenis error ini diberikan. Informasi ini dapat digunakan untuk:
- Menentukan apakah error dapat dicoba lagi
SEGMENT_KEY_NOT_FOUND
tidak dapat dicoba lagi.
- Memperbaiki informasi yang sudah tidak berlaku
Unavailable.Reason.CANCELED
menunjukkan bahwa perjalanan harus dihapus (perhatikan bahwa ini adalah bagian dari respons yang berhasil)Unavailable.Reason.TEMPORARILY_UNAVAILABLE
serta kode errorSEGMENT_KEY_NOT_FOUND
,SUBOPTIMAL_ITINERARY
,BOOKING_WINDOW_NOT_SUPPORTED
, danTICKETING_PROHIBITED
menghapus harga yang sebelumnya kami terima dari cache.
- Memberikan panduan yang relevan kepada pengguna
Daftar error khusus metode saat ini yang diberikan di
TripOptionsError
adalah titik awal. Jika jenis error tambahan diperlukan, hubungi tim Transportasi Perjalanan Google.
QPS (Kueri per detik)
Tingkat QPS yang dikirim oleh Google kemungkinan akan bervariasi berdasarkan inventaris partner dan jumlah pengguna yang melihat data yang di-cache atau mengklik situs partner untuk melakukan pemesanan.
Latensi
Waktu tunggu permintaan akan habis setelah 10 detik. Tidak akan ada panduan latensi tambahan untuk integrasi partner beta. Namun, SLO latensi lebih lanjut akan ditetapkan dalam Pedoman Kualitas Data Partner kami.
Mata uang, pajak, dan biaya
Semua harga yang dikirim ke Google harus mencakup semua pajak dan biaya serta ditentukan dalam mata uang yang didukung.
Mata Uang
Mata uang untuk harga ditentukan menggunakan kolom currency_code
, yang harus berupa kode mata uang ISO 4217 yang valid.
Contoh 10,25 USD:
{
"price": {
"currency_code": "USD",
"units": 10,
"nanos": 250000000
}
}
Pajak dan Biaya
Harga yang Anda berikan harus merupakan harga total akhir yang akan dibayar pengguna,
termasuk semua pajak (seperti PPN) dan biaya tambahan (seperti biaya pemesanan atau
biaya kartu pembayaran). Perincian tarif opsional dapat ditambahkan menggunakan kolom
line_items
yang dapat diulang. Google akan menampilkan harga total dengan perincian tarif opsional kepada pengguna.