Aller au contenu principal
API

Cycle de vie

L’API est construite autour d’un unique endpoint GraphQL évolutif. Cette architecture garantit que les nouvelles capacités et les améliorations de performance sont livrées en continu, sans nécessiter de migration entre des versions d’API.

Cette page décrit les différents niveaux de stabilité de l’API, les garanties de stabilité de l’API stable, les types de changements (incompatibles ou compatibles) et la gestion des obsolescences. Pour les fonctionnalités actuellement en préversion, consultez les fonctionnalités expérimentales.

Cycle de vie des fonctionnalités

Chaque fonctionnalité se situe à l’un des trois niveaux de stabilité : alpha, bêta ou stable. La plupart des fonctionnalités les parcourent dans l’ordre, et les fonctionnalités stables ne peuvent être retirées que via un processus d’obsolescence.

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

API stable

Les fonctionnalités stables constituent le cœur de l’API, prêt pour la production. Les changements sont classés en deux catégories : compatibles et incompatibles.

Changements compatibles

Ajouts rétrocompatibles qui ne perturbent pas les intégrations existantes. Ils sont publiés en continu, sans préavis ni obsolescence.

Les changements compatibles incluent :

  • L’ajout d’une nouvelle query, mutation ou subscription.
  • L’ajout d’un nouvel argument d’entrée optionnel à une opération existante.
  • L’ajout d’un nouvel argument avec une valeur par défaut qui préserve le comportement existant.
  • L’ajout d’un nouveau champ à la sortie d’une opération existante.
  • Le passage d’un argument d’entrée obligatoire à optionnel.
  • L’ajout d’une nouvelle valeur à un type enum existant.

Concevoir pour les changements compatibles

Les changements compatibles peuvent tout de même affecter les clients qui font des hypothèses rigides. Pour garder des intégrations résilientes :

  • Évitez la désérialisation stricte des objets, qui échoue lorsque des propriétés supplémentaires apparaissent dans les charges utiles.
  • Les types enum GraphQL ne sont pas exhaustifs et s’étendent au fil du temps. Implémentez toujours un cas par défaut de repli dans la logique du client.
  • Inspectez les valeurs extensions.exception.code des erreurs plutôt que de comparer des chaînes d’erreur lisibles par un humain.

Changements incompatibles et obsolescences

Un changement incompatible pourrait casser des intégrations actives existantes. Par conséquent, tout changement incompatible doit d’abord passer par un processus d’obsolescence de 12 mois.

Les changements incompatibles incluent :

  • La suppression ou le renommage d’une query, mutation, subscription, d’un champ ou d’un argument d’entrée existant.
  • La suppression ou le renommage de valeurs d’enum.
  • La modification du type de données d’un champ ou d’un argument d’entrée existant.
  • L’ajout d’un nouvel argument d’entrée obligatoire.
  • Le passage d’un argument d’entrée optionnel à obligatoire.
  • La modification de la logique métier ou du comportement d’un champ existant.
  • Le passage d’un champ de sortie de non nullable (!) à nullable.
  • La modification de la valeur par défaut d’un argument d’entrée ou d’un champ.
  • La modification des valeurs par défaut de pagination, des tailles de page maximales ou de l’ordre de tri documenté.

Calendrier d’obsolescence

Lorsqu’un changement incompatible nécessite de supprimer ou de remplacer une capacité stable, il suit un calendrier strict en trois phases :

  1. Annonce de l’obsolescenceLa fonctionnalité est marquée avec la directive @deprecated dans le schéma GraphQL. Le cas échéant, un chemin de migration est fourni. L’obsolescence et la date de suppression correspondante sont annoncées simultanément sur trois canaux de suivi.
  2. Période de préavis active (mois 1 à 12)La fonctionnalité obsolète reste pleinement opérationnelle. Si un chemin de migration est fourni, les intégrateurs doivent mettre à jour leurs applications et adopter les nouveaux champs pendant cette période de 12 mois.
  3. Suppression définitiveÀ la date de suppression, la fonctionnalité est définitivement supprimée. Toute requête ultérieure utilisant la fonctionnalité échouera à la validation du schéma avec une erreur GraphQL.

Suivi des obsolescences

Identifiez et suivez les retraits à venir via trois canaux :

  • Inspectez les directives @deprecated(reason: "...") dans vos outils de schéma.
  • Consultez les dates de fin et les guides de migration dans la section héritée de l’API ou sur le portail des obsolescences.
  • Surveillez les avertissements DEPRECATED_FEATURE renvoyés directement dans les réponses de l’API.
Exemple de réponse
Exemple de requête et de réponse
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."      }    ]  }}

Ce contenu vous a-t-il été utile ?

Développeurs

Chargetrip ©

Statut inconnu

Gérer les cookies

En vigueur le : 20 mars 2024 · Mis à jour le : 25 janvier 2023

Politique relative aux cookies

Nous utilisons des cookies pour améliorer votre expérience sur developers.chargetrip.com. Cette politique relative aux cookies fait partie de la politique de confidentialité et couvre l’utilisation des cookies entre votre appareil et notre site. Nous fournissons également des informations de base sur les services tiers que nous pouvons utiliser, qui peuvent eux aussi utiliser des cookies dans le cadre de leur service, bien qu’ils ne soient pas couverts par notre politique.

Si vous ne souhaitez accepter aucun cookie de notre part, vous devez configurer votre navigateur pour qu’il refuse les cookies de developers.chargetrip.com, en sachant que nous pourrions alors ne pas être en mesure de vous fournir certains des contenus et services souhaités.

Vérifier vos choix de consentement aux cookies

Un cookie est une petite donnée qu’un site web stocke sur votre appareil lors de votre visite. Il contient généralement des informations sur le site lui-même, un identifiant unique permettant au site de reconnaître votre navigateur à votre retour, des données supplémentaires répondant à la finalité du cookie, ainsi que la durée de vie du cookie.

Les cookies sont utilisés pour activer certaines fonctionnalités (par ex. la connexion), pour suivre l’utilisation du site (par ex. les analyses), pour stocker vos paramètres utilisateur (par ex. le fuseau horaire, les préférences de notification) et pour personnaliser votre contenu (par ex. la publicité, la langue).

Les cookies définis par le site web que vous visitez sont généralement appelés « cookies internes » (first-party) et ne suivent en principe que votre activité sur ce site particulier. Les cookies définis par d’autres sites et entreprises (c’est-à-dire des tiers) peuvent être utilisés pour vous suivre sur d’autres sites web qui utilisent le même service tiers.

Cookies essentiels

Les cookies définis par le site web que vous visitez sont généralement appelés « cookies internes » (first-party) et ne suivent en principe que votre activité sur ce site particulier. Les cookies définis par d’autres sites et entreprises (c’est-à-dire des tiers) peuvent être utilisés pour vous suivre sur d’autres sites web qui utilisent le même service tiers.

Cookies de performance

Les cookies de ciblage / publicitaires sont utilisés pour déterminer quel contenu promotionnel est le plus pertinent et approprié pour vous et vos centres d’intérêt. Les sites web peuvent les utiliser pour diffuser de la publicité ciblée ou pour limiter le nombre de fois où vous voyez une publicité. Cela aide les entreprises à améliorer l’efficacité de leurs campagnes et la qualité du contenu qui vous est présenté. Ces cookies peuvent être définis par le site web que vous visitez (first-party) ou par des services tiers. Les cookies de ciblage / publicitaires définis par des tiers peuvent être utilisés pour vous suivre sur d’autres sites web qui utilisent le même service tiers. Nous utilisons des cookies de ciblage / publicitaires sur notre site.

Cookies marketing / publicitaires

Les cookies de ciblage / publicitaires sont utilisés pour déterminer quel contenu promotionnel est le plus pertinent et approprié pour vous et vos centres d’intérêt. Les sites web peuvent les utiliser pour diffuser de la publicité ciblée ou pour limiter le nombre de fois où vous voyez une publicité. Cela aide les entreprises à améliorer l’efficacité de leurs campagnes et la qualité du contenu qui vous est présenté. Ces cookies peuvent être définis par le site web que vous visitez (first-party) ou par des services tiers. Les cookies de ciblage / publicitaires définis par des tiers peuvent être utilisés pour vous suivre sur d’autres sites web qui utilisent le même service tiers. Nous utilisons des cookies de ciblage / publicitaires sur notre site.

Engagement envers les tiers

Nous examinons les politiques de confidentialité de tous nos prestataires tiers avant de faire appel à leurs services, afin de nous assurer que leurs pratiques sont conformes aux nôtres. Nous n’inclurons jamais sciemment des services tiers qui compromettent ou violent la vie privée de nos utilisateurs.

Cookie
google-cookie-consent
Description
Stocke vos préférences en matière de cookies, c’est-à-dire les catégories que vous avez acceptées ou refusées, afin que nous puissions respecter votre choix à chaque visite et ne charger que les outils d’analyse ou de marketing que vous avez autorisés.
Durée de vie
2 ans

Comment contrôler ou refuser les cookies

Si vous ne souhaitez pas accepter les cookies de notre part, vous pouvez configurer votre navigateur pour qu’il refuse les cookies de notre site web. La plupart des navigateurs sont configurés par défaut pour accepter les cookies, mais vous pouvez modifier ces paramètres pour refuser complètement les cookies ou pour être averti lorsqu’un site web tente d’en définir un.

Si vous naviguez sur des sites web depuis plusieurs appareils, vous devrez peut-être modifier vos paramètres sur chacun d’eux.

Bien que certains cookies puissent être bloqués sans grand impact sur l’expérience d’un site web, bloquer tous les cookies peut vous empêcher d’accéder à certaines fonctionnalités et à certains contenus sur les sites que vous visitez.

Nous pouvons mettre à jour cette politique relative aux cookies de temps à autre afin de refléter, par exemple, des changements dans les cookies que nous utilisons ou pour d’autres raisons opérationnelles, juridiques ou réglementaires. Veuillez consulter à nouveau cette politique pour rester informé de notre utilisation des cookies et des technologies associées. La date en haut de cette politique relative aux cookies indique la dernière fois qu’elle a été mise à jour.