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. Die Anfragenachricht befindet sich im POST-Body.
Aus Gründen der strukturellen Klarheit wird die API-Schnittstellendokumentation 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 und die Clientzertifikatsauthentifizierung. Für alle HTTP-Aufrufe der Partner API wird entweder die HTTP-Digest-Authentifizierung (mit Nutzername und Passwort) oder die Clientzertifikatsauthentifizierung verwendet. Der Partner muss Google einen Nutzernamen und ein Passwort (siehe Partnerkonfiguration) oder ein SSL-Clientzertifikat zur Verfügung stellen.
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:
- 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_FOUND
kann nicht noch einmal versucht werden.
- Veraltete Informationen korrigieren
Unavailable.Reason.CANCELED
gibt an, dass die Fahrt entfernt werden soll. Dies ist Teil einer erfolgreichen Antwort.Unavailable.Reason.TEMPORARILY_UNAVAILABLE
sowie die FehlercodesSEGMENT_KEY_NOT_FOUND
,SUBOPTIMAL_ITINERARY
,BOOKING_WINDOW_NOT_SUPPORTED
undTICKETING_PROHIBITED
entfernen 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 zu buchen.
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 eine optionale Aufschlüsselung des Fahrpreises hinzugefügt werden. Google zeigt dem Nutzer den Gesamtpreis mit einer optionalen Aufschlüsselung des Tarifs an.