Partner server

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 Fehlercodes SEGMENT_KEY_NOT_FOUND, SUBOPTIMAL_ITINERARY, BOOKING_WINDOW_NOT_SUPPORTED und TICKETING_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.