Zum Hauptinhalt springen
API

Lebenszyklus

Die API basiert auf einem einzigen, sich weiterentwickelnden GraphQL-Endpoint. Diese Architektur stellt sicher, dass neue Funktionen und Leistungsverbesserungen kontinuierlich bereitgestellt werden, ohne dass eine Migration zwischen API-Versionen erforderlich ist.

Diese Seite beschreibt die verschiedenen Stabilitätsstufen der API, die Stabilitätsgarantien der stabilen API, die Arten von Änderungen (breaking vs. nicht-breaking) und wie Verwerfungen gehandhabt werden. Informationen zu Funktionen, die sich derzeit in der Vorschau befinden, finden Sie unter experimentelle Funktionen.

Funktions-Lebenszyklus

Jede Funktion befindet sich auf einer von drei Stabilitätsstufen: Alpha, Beta oder Stabil. Die meisten Funktionen durchlaufen diese der Reihe nach, und stabile Funktionen können nur über einen Verwerfungsprozess eingestellt werden.

Lifecycle
text
[ ALPHA ] ──> [ BETA ] ──> [ STABLE ] ──> [ DEPRECATED ] ──> [ REMOVED ] Opt-in        Enabled                      12+ month               by default                   notice window

Stabile API

Stabile Funktionen bilden den produktionsreifen Kern der API. Änderungen werden in zwei Kategorien eingeteilt: nicht-breaking und breaking.

Nicht-breaking Änderungen

Abwärtskompatible Ergänzungen, die bestehende Integrationen nicht beeinträchtigen. Diese werden kontinuierlich und ohne Vorankündigung oder Verwerfung veröffentlicht.

Zu den nicht-breaking Änderungen gehören:

  • Hinzufügen einer neuen Query, Mutation oder Subscription.
  • Hinzufügen eines neuen optionalen Eingabearguments zu einer bestehenden Operation.
  • Hinzufügen eines neuen Arguments mit einem Standardwert, der das bestehende Verhalten beibehält.
  • Hinzufügen eines neuen Felds zur Ausgabe einer bestehenden Operation.
  • Ändern eines erforderlichen Eingabearguments in ein optionales.
  • Hinzufügen eines neuen Werts zu einem bestehenden Enum-Typ.

Auf nicht-breaking Änderungen vorbereiten

Auch nicht-breaking Änderungen können Clients beeinträchtigen, die starre Annahmen treffen. So halten Sie Integrationen robust:

  • Vermeiden Sie strikte Objekt-Deserialisierung, die fehlschlägt, wenn in Payloads zusätzliche Eigenschaften auftauchen.
  • GraphQL-enum-Typen sind nicht abschließend und wachsen mit der Zeit. Implementieren Sie in der Client-Logik immer einen Fallback-Standardfall.
  • Prüfen Sie die Werte von extensions.exception.code in Fehlern, anstatt gegen für Menschen lesbare Fehlerstrings abzugleichen.

Breaking Änderungen und Verwerfungen

Eine breaking Änderung kann aktive bestehende Integrationen beeinträchtigen. Deshalb muss jede breaking Änderung zuerst einen 12-monatigen Verwerfungsprozess durchlaufen.

Zu den breaking Änderungen gehören:

  • Entfernen oder Umbenennen einer bestehenden Query, Mutation, Subscription, eines Felds oder Eingabearguments.
  • Entfernen oder Umbenennen von Enum-Werten.
  • Ändern des Datentyps eines bestehenden Felds oder Eingabearguments.
  • Hinzufügen eines neuen erforderlichen Eingabearguments.
  • Ändern eines optionalen Eingabearguments in ein erforderliches.
  • Ändern der Geschäftslogik oder des Verhaltens eines bestehenden Felds.
  • Ändern eines Ausgabefelds von nicht nullable (!) zu nullable.
  • Ändern des Standardwerts eines Eingabearguments oder Felds.
  • Ändern von Pagination-Standardwerten, maximalen Seitengrößen oder der dokumentierten Sortierreihenfolge.

Verwerfungszeitplan

Wenn eine breaking Änderung das Entfernen oder Ersetzen einer stabilen Funktion erfordert, folgt sie einem strikten Zeitplan in drei Phasen:

  1. VerwerfungsankündigungDie Funktion wird im GraphQL-Schema mit der Direktive @deprecated gekennzeichnet. Falls zutreffend, wird ein Migrationspfad bereitgestellt. Die Verwerfung und das jeweilige Entfernungsdatum werden gleichzeitig über drei Überwachungskanäle angekündigt.
  2. Aktive Ankündigungsfrist (Monate 1–12)Die verworfene Funktion bleibt voll funktionsfähig. Wenn ein Migrationspfad bereitgestellt wird, sollten Integratoren ihre Anwendungen in diesem 12-Monats-Zeitraum aktualisieren und die neuen Felder übernehmen.
  3. Endgültiges EntfernenZum Entfernungsdatum wird die Funktion endgültig entfernt. Alle nachfolgenden Anfragen, die die Funktion verwenden, schlagen bei der Schemavalidierung mit einem GraphQL-Fehler fehl.

Verwerfungen nachverfolgen

Erkennen und verfolgen Sie bevorstehende Einstellungen über drei Kanäle:

  • Prüfen Sie @deprecated(reason: "...")-Direktiven in Ihren Schema-Tools.
  • Sehen Sie sich Sunset-Daten und Migrationsleitfäden im Legacy-Bereich der API oder im Verwerfungsportal an.
  • Überwachen Sie DEPRECATED_FEATURE-Warnungen, die direkt in API-Antworten zurückgegeben werden.
Antwortbeispiel
Example request and response
graphql
{  "data": {    "station": {      "id": "5e8c22366f9c5f23ab0eff39",      "amenityList": [        {          "name": "Coffee Shop",          "foursquareUrl": "https://foursquare.com/v/example"        }      ]    }  },  "extensions": {    "warnings": [      {        "code": "DEPRECATED_FEATURE",        "path": ["amenityList", "foursquareUrl"],        "message": "This feature is deprecated and will be removed. To prevent errors and service disruptions, migrate to the recommended alternative before the scheduled removal date. Visit https://developers.chargetrip.com/deprecations for more information."      }    ]  }}

War dieser Inhalt hilfreich?

Entwickler

Chargetrip ©

Status unbekannt

Cookies verwalten

Gültig ab: 20. März 2024 · Aktualisiert: 25. Januar 2023

Wir verwenden Cookies, um Ihr Erlebnis auf developers.chargetrip.com zu verbessern. Diese Cookie-Richtlinie ist Teil der Datenschutzerklärung und regelt die Verwendung von Cookies zwischen Ihrem Gerät und unserer Website. Außerdem geben wir grundlegende Informationen zu Diensten Dritter, die wir möglicherweise einsetzen und die im Rahmen ihres Dienstes ebenfalls Cookies verwenden können, auch wenn diese nicht von unserer Richtlinie abgedeckt sind.

Wenn Sie keine Cookies von uns akzeptieren möchten, sollten Sie Ihren Browser anweisen, Cookies von developers.chargetrip.com abzulehnen, in dem Bewusstsein, dass wir Ihnen dann möglicherweise einige der gewünschten Inhalte und Dienste nicht bereitstellen können.

Ein Cookie ist eine kleine Datenmenge, die eine Website beim Besuch auf Ihrem Gerät speichert. Sie enthält typischerweise Informationen über die Website selbst, eine eindeutige Kennung, mit der die Website Ihren Webbrowser bei Ihrer Rückkehr wiedererkennt, zusätzliche Daten, die dem Zweck des Cookies selbst dienen, sowie die Lebensdauer des Cookies selbst.

Cookies werden verwendet, um bestimmte Funktionen zu ermöglichen (z. B. die Anmeldung), die Website-Nutzung zu erfassen (z. B. Analysen), Ihre Benutzereinstellungen zu speichern (z. B. Zeitzone, Benachrichtigungspräferenzen) und Ihre Inhalte zu personalisieren (z. B. Werbung, Sprache).

Cookies, die von der besuchten Website gesetzt werden, werden üblicherweise als „Erstanbieter-Cookies“ bezeichnet und erfassen in der Regel nur Ihre Aktivität auf dieser Website. Cookies, die von anderen Websites und Unternehmen (d. h. Drittanbietern) gesetzt werden, können verwendet werden, um Sie auf anderen Websites zu verfolgen, die denselben Drittanbieterdienst nutzen.

Essenzielle Cookies

Cookies, die von der besuchten Website gesetzt werden, werden üblicherweise als „Erstanbieter-Cookies“ bezeichnet und erfassen in der Regel nur Ihre Aktivität auf dieser Website. Cookies, die von anderen Websites und Unternehmen (d. h. Drittanbietern) gesetzt werden, können verwendet werden, um Sie auf anderen Websites zu verfolgen, die denselben Drittanbieterdienst nutzen.

Leistungs-Cookies

Targeting-/Werbe-Cookies werden verwendet, um zu bestimmen, welche Werbeinhalte für Sie und Ihre Interessen relevanter und passender sind. Websites können sie einsetzen, um gezielte Werbung auszuliefern oder die Anzahl der Einblendungen einer Anzeige zu begrenzen. Das hilft Unternehmen, die Wirksamkeit ihrer Kampagnen und die Qualität der Ihnen angezeigten Inhalte zu verbessern. Diese Cookies können von der besuchten Website (Erstanbieter) oder von Diensten Dritter gesetzt werden. Von Dritten gesetzte Targeting-/Werbe-Cookies können verwendet werden, um Sie auf anderen Websites zu verfolgen, die denselben Drittanbieterdienst nutzen. Wir verwenden Targeting-/Werbe-Cookies auf unserer Website.

Marketing-/Werbe-Cookies

Targeting-/Werbe-Cookies werden verwendet, um zu bestimmen, welche Werbeinhalte für Sie und Ihre Interessen relevanter und passender sind. Websites können sie einsetzen, um gezielte Werbung auszuliefern oder die Anzahl der Einblendungen einer Anzeige zu begrenzen. Das hilft Unternehmen, die Wirksamkeit ihrer Kampagnen und die Qualität der Ihnen angezeigten Inhalte zu verbessern. Diese Cookies können von der besuchten Website (Erstanbieter) oder von Diensten Dritter gesetzt werden. Von Dritten gesetzte Targeting-/Werbe-Cookies können verwendet werden, um Sie auf anderen Websites zu verfolgen, die denselben Drittanbieterdienst nutzen. Wir verwenden Targeting-/Werbe-Cookies auf unserer Website.

Versprechen zu Drittanbietern

Wir prüfen die Datenschutzrichtlinien aller unserer Drittanbieter, bevor wir ihre Dienste in Anspruch nehmen, um sicherzustellen, dass ihre Praktiken mit unseren übereinstimmen. Wir werden niemals wissentlich Drittanbieterdienste einbinden, die die Privatsphäre unserer Nutzer gefährden oder verletzen.

Cookie
google-cookie-consent
Beschreibung
Speichert Ihre Cookie-Präferenzen, also welche Kategorien Sie akzeptiert oder abgelehnt haben, damit wir Ihre Entscheidung bei jedem Besuch respektieren und nur die von Ihnen erlaubten Analyse- oder Marketing-Tools laden können.
Lebensdauer
2 Jahre

So können Sie Cookies kontrollieren oder ablehnen

Wenn Sie keine Cookies von uns akzeptieren möchten, können Sie Ihren Browser anweisen, Cookies von unserer Website abzulehnen. Die meisten Browser sind standardmäßig so konfiguriert, dass sie Cookies akzeptieren, aber Sie können diese Einstellungen ändern, um Cookies entweder vollständig abzulehnen oder benachrichtigt zu werden, wenn eine Website versucht, ein Cookie zu setzen.

Wenn Sie Websites von mehreren Geräten aus besuchen, müssen Sie Ihre Einstellungen möglicherweise auf jedem einzelnen Gerät anpassen.

Obwohl sich einige Cookies mit geringen Auswirkungen auf die Nutzung einer Website blockieren lassen, kann das Blockieren aller Cookies dazu führen, dass Sie auf bestimmte Funktionen und Inhalte der von Ihnen besuchten Websites nicht zugreifen können.

Wir können diese Cookie-Richtlinie von Zeit zu Zeit aktualisieren, um beispielsweise Änderungen an den von uns verwendeten Cookies oder andere betriebliche, rechtliche oder regulatorische Gründe widerzuspiegeln. Bitte rufen Sie diese Cookie-Richtlinie erneut auf, um sich über unsere Verwendung von Cookies und verwandten Technologien auf dem Laufenden zu halten. Das Datum am Anfang dieser Cookie-Richtlinie gibt an, wann sie zuletzt aktualisiert wurde.