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 yöntemi POST 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 yayınlamak 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ı). İş ortağı, 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ıyla 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 (ör. 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 bunun yerine Çok Fazla İstek yanıtını kullanın). Arayan tanımlanamıyorsa Forbidden kullanılmamalıdır (bu tür hatalar için bunun yerine Unauthorized kullanın). |
| 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 | Kullanıcı başına kota gibi bir kaynak tükendi. |
| 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 çekilme 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 (ör.
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 gösterir (bunun başarılı bir yanıtın parçası olduğunu unutmayın).Unavailable.Reason.TEMPORARILY_UNAVAILABLEile birlikteSEGMENT_KEY_NOT_FOUND,SUBOPTIMAL_ITINERARY,BOOKING_WINDOW_NOT_SUPPORTEDveTICKETING_PROHIBITEDhata kodları, daha önce önbellekten aldığımız tüm fiyatları kaldırır.
- Kullanıcılara alakalı rehberlik sağlama
TripOptionsError
bölümünde 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, geçerli bir ISO 4217 para birimi kodu olması gereken currency_code alanı kullanılarak belirtilir.
10,25 TL örneği:
{
"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. Tekrarlanabilir line_items alanı kullanılarak isteğe bağlı bir ücret dökümü eklenebilir. Google, toplam fiyatı kullanıcılara isteğe bağlı bir ücret dökümüyle birlikte gösterir.