Um Preis- und Verfügbarkeitsinformationen einzubinden, müssen Partner die Partner API implementieren. Diese Schnittstelle basiert auf REST und ermöglicht es Google, Live-Anrufe über HTTP zu senden. Details zu einzelnen API-Methoden finden Sie im Abschnitt Referenz. Informationen zu übergreifenden Aspekten finden Sie weiter unten.
Anfrage- und Antwortformat
Anfangs werden nur JSON-Formate unterstützt. Wenn zusätzliche Anfrage- oder Antwortformate erforderlich sind, wenden Sie sich bitte an das Travel Transport-Team unter transport-help@google.com, um Ihren Anwendungsfall zu besprechen.
Anfragen werden mit der HTTP-Methode POST gesendet, wobei sich die Anfragenachricht im POST-Body befindet.
Die API-Schnittstellendokumentation wird aus Gründen der strukturellen Klarheit als Protocol Buffer-Nachrichtendefinitionen bereitgestellt. Die Übersetzung einer Protocol Buffer-Nachrichtendefinition in ein JSON-Objekt wird durch die kanonische JSON-Zuordnung definiert. Dabei werden die Optionen verwendet, um Felder mit Standardwerten auszugeben und Proto-Feldnamen anstelle von lowerCamelCase-Namen zu verwenden.
Authentifizierung
Google unterstützt die HTTP-Digest-Authentifizierung, OAuth 2.0 und die Clientzertifikatsauthentifizierung (siehe Partnerkonfiguration). Der Partner muss Google während des API-Tests die richtigen Anmeldedaten zur Verfügung stellen:
- Für Digest: Nutzername und Passwort.
- Für OAuth 2.0: client_id und client_secret.
- Für „Zertifikat“: ein SSL-Clientzertifikat.
Statuscodes und Fehlerbehandlung
Im Allgemeinen können die folgenden Statuscodes in HTTP-Antworten zurückgegeben werden:
| HTTP-Code | HTTP-Beschreibung | Hinweise |
|---|---|---|
| 2xx | OK | Kein Fehler; wird bei Erfolg angezeigt Der Antworttext sollte ein erfolgreiches Ergebnis (z.B. TripOptionsResult) und keine Fehlerantwort enthalten. |
| 400 | Ungültige Anfrage | Die empfangene Anfrage war ungültig. Methodenspezifische Fehlerantworten sollten verwendet werden, um zusätzliche Fehlerdetails im Antworttext zurückzugeben. HTTP 400 sollte im Allgemeinen nur verwendet werden, wenn Google einen technischen Fehler gemacht hat, z.B. ein falsch benanntes Feld in einer Anfrage. |
| 403 | Forbidden (Unzulässig) | Berechtigung verweigert/verboten (Aufrufer ist bekannt und wurde abgelehnt). Diese Antwort darf nicht für Ablehnungen verwendet werden, die durch erschöpfte Ressourcen verursacht werden. Verwende stattdessen „Too Many Requests“ für diese Fehler. „Forbidden“ darf nicht verwendet werden, wenn der Aufrufer nicht ermittelt werden kann (verwenden Sie stattdessen „Unauthorized“ für diese Fehler). |
| 404 | Nicht gefunden | Die angeforderte Ressource wurde nicht gefunden. Methodenspezifische Fehlerantworten sollten verwendet werden, um zusätzliche Fehlerdetails im Antworttext zurückzugeben. |
| 429 | Zu viele Anfragen | Eine Ressource, z. B. ein nutzerbezogenes Kontingent, ist erschöpft. |
| 500 | Internal Server Error (Interner Serverfehler) | Interne Fehler. Das bedeutet, dass einige Invarianten, die vom zugrunde liegenden System erwartet werden, nicht erfüllt wurden. Dieser Fehlercode ist für schwerwiegende Fehler reserviert und weist auf einen Fehler in der API-Serverimplementierung des Partners hin. |
| 503 | Dienst nicht verfügbar | Der Dienst ist nicht verfügbar. Dies ist höchstwahrscheinlich ein vorübergehender Zustand, der durch Wiederholen mit einem Backoff korrigiert werden kann. |
| 504 | Gateway Timeout (Gateway-Zeitüberschreitung) | Die Frist ist abgelaufen, bevor der Vorgang abgeschlossen werden konnte. Bei Vorgängen, die den Systemstatus verändern, kann dieser Fehler angezeigt werden, auch wenn der Vorgang erfolgreich abgeschlossen wurde. Beispielsweise könnte eine erfolgreiche Antwort von einem Server so lange verzögert worden sein, dass die Frist abgelaufen ist. |
Hinweis: Bei allen Vorbedingungen, ungültigen Argumenten oder Fehlern vom Typ „Nicht gefunden“ gilt Folgendes:
- Die in den APIs definierten methodenspezifischen Antworten oder Fehlermeldungen sollten verwendet werden.
- Der richtige HTTP-Code muss verwendet werden, wie in den methodenspezifischen Codes angegeben (siehe z. B.
TripOptionsErrorType).
So können detailliertere Informationen zu diesen Fehlertypen bereitgestellt werden. Diese Informationen können für Folgendes verwendet werden:
- Ermitteln, ob ein Fehler wiederholt werden kann
SEGMENT_KEY_NOT_FOUNDkann nicht noch einmal versucht werden.
- Veraltete Informationen korrigieren
Unavailable.Reason.CANCELEDgibt an, dass die Fahrt entfernt werden soll. Dies ist Teil einer erfolgreichen Antwort.Unavailable.Reason.TEMPORARILY_UNAVAILABLEsowie die FehlercodesSEGMENT_KEY_NOT_FOUND,SUBOPTIMAL_ITINERARY,BOOKING_WINDOW_NOT_SUPPORTEDundTICKETING_PROHIBITEDentfernen alle Preise, die wir zuvor aus dem Cache erhalten haben.
- Nutzern relevante Informationen zur Verfügung stellen
Die aktuelle Liste der methodenspezifischen Fehler in TripOptionsError ist ein Ausgangspunkt. Wenn zusätzliche Fehlertypen erforderlich sind, wenden Sie sich bitte an das Google Travel Transport-Team.
QPS (Abfragen pro Sekunde)
Die von Google gesendete Anzahl von Anfragen pro Sekunde variiert wahrscheinlich je nach Partnerinventar und danach, wie viele Nutzer die im Cache gespeicherten Daten aufrufen oder auf Partnerwebsites klicken, um eine Buchung vorzunehmen.
Latenz
Anfragen laufen nach 10 Sekunden ab. Für Beta-Partnerintegrationen gelten keine zusätzlichen Latenzrichtlinien. Weitere SLOs für die Latenz werden jedoch in unseren Datenqualitätsrichtlinien für Partner definiert.
Währungen, Steuern und Gebühren
Alle an Google gesendeten Preise müssen alle Steuern und Gebühren enthalten und in einer unterstützten Währung angegeben werden.
Währung
Die Währung für einen Preis wird mit dem Feld currency_code angegeben. Dieses muss ein gültiger ISO 4217-Währungscode sein.
Beispiel:10,25 USD
{
"price": {
"currency_code": "USD",
"units": 10,
"nanos": 250000000
}
}
Steuern und Gebühren
Der von Ihnen angegebene Preis muss der endgültige Gesamtpreis sein, den der Nutzer zahlt, einschließlich aller Steuern (z. B. Mehrwertsteuer) und aller zusätzlichen Gebühren (z. B. Buchungs- oder Kreditkartengebühren). Mit dem wiederholbaren Feld line_items kann optional eine Aufschlüsselung des Fahrpreises hinzugefügt werden. Google zeigt dem Nutzer den Gesamtpreis mit einer optionalen Aufschlüsselung des Tarifs an.