Fiyatlandırma ve müsaitlik durumu bilgilerini entegre etmek için iş ortaklarının Partner API'yi uygulaması gerekir. Bu arayüz REST'e dayanır ve Google'ın HTTP üzerinden canlı görüşme göndermesine olanak tanır. Tek tek API yöntemlerinin ayrıntıları Referans bölümünde açıklanırken, kesişen konularla ilgili bilgileri daha sonra bulabilirsiniz.
İstek ve yanıt biçimi
Başlangıçta yalnızca JSON biçimleri desteklenecektir. Başka istek veya yanıt biçimleri gerekiyorsa kullanım alanınızı görüşmek için transport-help@google.com adresinden Seyahat Taşımacılığı Ekibi ile iletişime geçin.
İstekler, POST gövdesindeki istek mesajıyla birlikte HTTP POST yöntemi kullanılarak gönderilir.
Yapısal netlik için API arayüzü dokümanlarının Protokol Arabelleği mesaj tanımları olarak sağlandığını ve Protokol Arabelleği mesaj tanımının JSON nesnesine çevrilmesinin, standart JSON eşlemesi ile tanımlandığını unutmayın. Bu eşleme, varsayılan değerlere sahip alanlar yaymak ve lowerCamelCase adları yerine proto alan adlarını kullanmak için seçenekleri kullanır.
Kimlik doğrulama
Google; HTTP Özet Kimlik Doğrulaması, OAuth 2.0 ve İstemci Sertifikası Kimlik Doğrulaması'nı destekler (bkz. İş Ortağı Yapılandırması). İş ortakları, API testi sırasında Google'a doğru kimlik bilgilerini sağlamalıdır:
- Özet için: kullanıcı adı ve şifre.
- OAuth 2.0 için: client_id ve client_secret.
- Sertifika için: SSL istemci sertifikası.
Durum kodları ve hata işleme
Genel olarak, HTTP yanıtlarında aşağıdaki durum kodları döndürülebilir:
| HTTP Kodu | HTTP Açıklaması | Notlar |
|---|---|---|
| 2xx | Tamam | Hata değildir, başarı durumunda döndürülür. Yanıt gövdesinin, hata yanıtı değil başarılı bir sonuç (ör. TripOptionsResult) içermesi beklenir. |
| 400 | Hatalı İstek | Alınan istek geçersizdi. Yanıt gövdesinde ek hata ayrıntıları döndürmek için yönteme özgü hata yanıtları kullanılmalıdır. HTTP 400 genellikle yalnızca Google teknik bir hata yaptıysa (örneğin, bir istekte yanlış adlandırılmış bir alan) kullanılmalıdır. |
| 403 | Yasak | İzin reddedildi/yasaklandı (arayan kişi biliniyor ve reddedildi). Bu yanıt, bazı kaynakların tükenmesinden kaynaklanan retler için kullanılmamalıdır (bu tür hatalar için Çok Fazla İstek yanıtını kullanın). Arayan tanımlanamıyorsa Forbidden (Yasak) kullanılmamalıdır (bu tür hatalar için bunun yerine Unauthorized (Yetkisiz) kullanılmalıdır). |
| 404 | Bulunamadı | İstenen kaynak bulunamadı. Yanıt gövdesinde ek hata ayrıntıları döndürmek için yönteme özgü hata yanıtları kullanılmalıdır. |
| 429 | Çok fazla istek var | Bazı kaynaklar (ör. kullanıcı başına kota) tükenmiş olabilir. |
| 500 | Dahili Sunucu Hatası | Dahili hatalar. Bu, temel sistemin beklediği bazı değişmezlerin bozulduğu anlamına gelir. Bu hata kodu, ciddi hatalar için ayrılmıştır ve iş ortağının API sunucusu uygulamasında bir hata olduğunu gösterir. |
| 503 | Hizmet Kullanılamıyor | Hizmet kullanılamıyor. Bu durum büyük olasılıkla geçicidir ve geri yükleme aralığı ile yeniden denenerek düzeltilebilir. |
| 504 | Ağ Geçidi Zaman Aşımı | İşlem tamamlanmadan son tarih geçti. Sistemin durumunu değiştiren işlemler için, işlem başarıyla tamamlanmış olsa bile bu hata döndürülebilir. Örneğin, bir sunucudan gelen başarılı yanıt, son kullanma tarihinin geçmesine yetecek kadar uzun süre gecikmiş olabilir. |
Tüm ön koşullar, geçersiz bağımsız değişkenler veya bulunamadı hataları için şunları unutmayın:
- API'lerde tanımlanan yönteme özgü yanıtlar veya hata mesajları kullanılmalıdır.
- Yönteme özel kodlarda belirtildiği gibi doğru HTTP kodu kullanılmalıdır (örneğin,
TripOptionsErrorType).
Bu sayede, bu tür hatalar hakkında daha ayrıntılı bilgi sağlanabilir. Bu bilgiler şu amaçlarla kullanılabilir:
- Bir hatanın yeniden denenip denenemeyeceğini belirleme
SEGMENT_KEY_NOT_FOUNDyeniden denenemez.
- Eski bilgileri düzeltin
Unavailable.Reason.CANCELED, gezinin kaldırılması gerektiğini belirtir (bunun başarılı bir yanıtın parçası olduğunu unutmayın)Unavailable.Reason.TEMPORARILY_UNAVAILABLEile birlikte hata kodlarıSEGMENT_KEY_NOT_FOUND,SUBOPTIMAL_ITINERARY,BOOKING_WINDOW_NOT_SUPPORTEDveTICKETING_PROHIBITED, daha önce önbellekten aldığımız tüm fiyatları kaldırır.
- Kullanıcılara alakalı rehberlik sağlama
TripOptionsError
içinde sağlanan yönteme özgü hataların mevcut listesi bir başlangıç noktasıdır. Başka hata türlerine ihtiyaç duyarsanız lütfen Google Seyahat Ulaşım Ekibi ile iletişime geçin.
QPS (saniyedeki sorgu sayısı)
Google tarafından gönderilen QPS düzeyi, iş ortağı envanterine ve kaç kullanıcının önbelleğe alınmış verileri görüntülediğine veya rezervasyon için iş ortağı web sitelerini tıkladığına bağlı olarak değişebilir.
Gecikme
İsteklerin zaman aşımı süresi 10 saniyedir. Beta iş ortağı entegrasyonları için ek gecikme yönergeleri olmayacaktır. Ancak, daha fazla gecikme SLO'su İş Ortağı Veri Kalitesi Yönergelerimizde tanımlanacaktır.
Para birimleri, vergiler ve ücretler
Google'a gönderilen tüm fiyatlar, tüm vergi ve ücretleri içermeli ve desteklenen bir para biriminde belirtilmelidir.
Para Birimi
Bir fiyatın para birimi, currency_code
alanı kullanılarak belirtilir. Bu alan, geçerli bir
ISO 4217 para birimi kodu olmalıdır.
Örnek 10,25 TRY:
{
"price": {
"currency_code": "USD",
"units": 10,
"nanos": 250000000
}
}
Vergiler ve Ücretler
Sağladığınız fiyat, kullanıcının ödeyeceği nihai toplam fiyat olmalı, tüm vergiler (ör. KDV) ve ek ücretler (ör. rezervasyon veya ödeme kartı ücretleri) dahil olmalıdır. İsteğe bağlı ücret dökümü, tekrarlanabilir line_items alanı kullanılarak eklenebilir. Google, kullanıcılara toplam fiyatı ve isteğe bağlı olarak ücret dökümünü gösterir.