Vai al contenuto principale
API

Ciclo di vita

L’API è costruita attorno a un unico endpoint GraphQL in continua evoluzione. Questa architettura garantisce che nuove funzionalità e miglioramenti delle prestazioni vengano rilasciati in modo continuo, senza richiedere migrazioni tra versioni dell’API.

Questa pagina descrive i diversi livelli di stabilità presenti nell’API, le garanzie di stabilità dell’API stabile, i tipi di modifiche (incompatibili e compatibili) e come vengono gestite le deprecazioni. Per le funzionalità attualmente in anteprima, consulta le funzionalità sperimentali.

Ciclo di vita delle funzionalità

Ogni funzionalità si trova a uno di tre livelli di stabilità: alpha, beta o stabile. La maggior parte delle funzionalità li attraversa in ordine, e le funzionalità stabili possono essere ritirate solo tramite un processo di deprecazione.

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

API stabile

Le funzionalità stabili rappresentano il nucleo dell’API pronto per la produzione. Le modifiche sono classificate in due categorie: compatibili e incompatibili.

Modifiche compatibili

Aggiunte retrocompatibili che non interrompono le integrazioni esistenti. Vengono rilasciate in modo continuo senza preavviso o deprecazione.

Le modifiche compatibili includono:

  • Aggiungere una nuova query, mutation o subscription.
  • Aggiungere un nuovo argomento di input opzionale a un’operazione esistente.
  • Aggiungere un nuovo argomento con un valore predefinito che preserva il comportamento esistente.
  • Aggiungere un nuovo campo all’output di un’operazione esistente.
  • Rendere opzionale un argomento di input obbligatorio.
  • Aggiungere un nuovo valore a un tipo enum esistente.

Sviluppare tenendo conto delle modifiche compatibili

Anche le modifiche compatibili possono interessare i client che fanno ipotesi troppo rigide. Per mantenere le integrazioni resilienti:

  • Evita una deserializzazione rigida degli oggetti che fallisce quando compaiono proprietà aggiuntive nei payload.
  • I tipi enum di GraphQL non sono esaustivi e si espandono nel tempo. Implementa sempre un caso predefinito di fallback nella logica del client.
  • Ispeziona i valori di extensions.exception.code degli errori anziché confrontare le stringhe di errore leggibili.

Modifiche incompatibili e deprecazioni

Una modifica incompatibile potrebbe interrompere le integrazioni esistenti attive. Di conseguenza, qualsiasi modifica incompatibile deve prima passare attraverso un processo di deprecazione di 12 mesi.

Le modifiche incompatibili includono:

  • Rimuovere o rinominare una query, mutation, subscription, campo o argomento di input esistente.
  • Rimuovere o rinominare valori di enum.
  • Cambiare il tipo di dati di un campo o di un argomento di input esistente.
  • Aggiungere un nuovo argomento di input obbligatorio.
  • Rendere obbligatorio un argomento di input opzionale.
  • Alterare la logica di business o il comportamento di un campo esistente.
  • Cambiare un campo di output da non nullable (!) a nullable.
  • Cambiare il valore predefinito di un argomento di input o di un campo.
  • Cambiare i valori predefiniti della paginazione, le dimensioni massime delle pagine o l’ordinamento documentato.

Cronologia della deprecazione

Quando una modifica incompatibile richiede di rimuovere o sostituire una funzionalità stabile, segue una rigorosa cronologia in tre fasi:

  1. Annuncio della deprecazioneLa funzionalità viene contrassegnata con la direttiva @deprecated nello schema GraphQL. Se applicabile, viene fornito un percorso di migrazione. La deprecazione e la rispettiva data di rimozione vengono annunciate contemporaneamente attraverso tre canali di monitoraggio.
  2. Periodo di preavviso attivo (mesi 1–12)La funzionalità deprecata rimane pienamente operativa. Se viene fornito un percorso di migrazione, gli integratori dovrebbero aggiornare le proprie applicazioni e adottare i nuovi campi durante questa finestra di 12 mesi.
  3. Rimozione definitivaAlla data di rimozione, la funzionalità viene rimossa in modo permanente. Qualsiasi richiesta successiva che utilizzi la funzionalità non supererà la validazione dello schema e restituirà un errore GraphQL.

Monitorare le deprecazioni

Individua e monitora i prossimi ritiri attraverso tre canali:

  • Ispeziona le direttive @deprecated(reason: "...") nei tuoi strumenti per lo schema.
  • Consulta le date di dismissione e le guide alla migrazione nella sezione legacy dell’API o nel portale delle deprecazioni.
  • Monitora gli avvisi DEPRECATED_FEATURE restituiti direttamente nelle risposte dell’API.
Esempio di risposta
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."      }    ]  }}

Questo contenuto ti è stato utile?

Sviluppatori

Chargetrip ©

Stato sconosciuto

Gestisci i cookie

In vigore dal: 20 marzo 2024 · Aggiornato il: 25 gennaio 2023

Utilizziamo i cookie per migliorare la tua esperienza su developers.chargetrip.com. Questa politica sui cookie fa parte dell’informativa sulla privacy e riguarda l’uso dei cookie tra il tuo dispositivo e il nostro sito. Forniamo inoltre informazioni di base sui servizi di terze parti che potremmo utilizzare, i quali possono a loro volta usare cookie come parte del loro servizio, anche se non sono coperti dalla nostra politica.

Se non desideri accettare alcun cookie da parte nostra, devi impostare il tuo browser in modo da rifiutare i cookie provenienti da developers.chargetrip.com, tenendo presente che potremmo non essere in grado di offrirti alcuni dei contenuti e dei servizi desiderati.

Un cookie è un piccolo frammento di dati che un sito web memorizza sul tuo dispositivo quando lo visiti. In genere contiene informazioni sul sito stesso, un identificatore univoco che consente al sito di riconoscere il tuo browser quando torni, dati aggiuntivi che servono allo scopo del cookie e la durata del cookie stesso.

I cookie vengono utilizzati per abilitare determinate funzioni (ad es. l’accesso), per monitorare l’utilizzo del sito (ad es. analisi), per memorizzare le tue impostazioni utente (ad es. fuso orario, preferenze di notifica) e per personalizzare i tuoi contenuti (ad es. pubblicità, lingua).

I cookie impostati dal sito web che stai visitando sono normalmente chiamati “cookie di prima parte” e in genere tracciano solo la tua attività su quel particolare sito. I cookie impostati da altri siti e aziende (ovvero terze parti) possono essere utilizzati per tracciarti su altri siti web che utilizzano lo stesso servizio di terze parti.

I cookie impostati dal sito web che stai visitando sono normalmente chiamati “cookie di prima parte” e in genere tracciano solo la tua attività su quel particolare sito. I cookie impostati da altri siti e aziende (ovvero terze parti) possono essere utilizzati per tracciarti su altri siti web che utilizzano lo stesso servizio di terze parti.

I cookie di targeting / pubblicitari vengono utilizzati per determinare quali contenuti promozionali sono più rilevanti e appropriati per te e i tuoi interessi. I siti web possono usarli per mostrare pubblicità mirata o per limitare il numero di volte in cui visualizzi un annuncio. Questo aiuta le aziende a migliorare l’efficacia delle loro campagne e la qualità dei contenuti che ti vengono presentati. Questi cookie possono essere impostati dal sito web che stai visitando (prima parte) o da servizi di terze parti. I cookie di targeting/pubblicitari impostati da terze parti possono essere utilizzati per tracciarti su altri siti web che utilizzano lo stesso servizio di terze parti. Utilizziamo cookie di targeting/pubblicitari sul nostro sito.

I cookie di targeting / pubblicitari vengono utilizzati per determinare quali contenuti promozionali sono più rilevanti e appropriati per te e i tuoi interessi. I siti web possono usarli per mostrare pubblicità mirata o per limitare il numero di volte in cui visualizzi un annuncio. Questo aiuta le aziende a migliorare l’efficacia delle loro campagne e la qualità dei contenuti che ti vengono presentati. Questi cookie possono essere impostati dal sito web che stai visitando (prima parte) o da servizi di terze parti. I cookie di targeting/pubblicitari impostati da terze parti possono essere utilizzati per tracciarti su altri siti web che utilizzano lo stesso servizio di terze parti. Utilizziamo cookie di targeting/pubblicitari sul nostro sito.

Impegno verso le terze parti

Esaminiamo le informative sulla privacy di tutti i nostri fornitori terzi prima di avvalerci dei loro servizi, per assicurarci che le loro pratiche siano in linea con le nostre. Non includeremo mai consapevolmente servizi di terze parti che compromettano o violino la privacy dei nostri utenti.

Cookie
google-cookie-consent
Descrizione
Memorizza le tue preferenze sui cookie, ovvero quali categorie hai accettato o rifiutato, in modo da rispettare la tua scelta a ogni visita e caricare solo gli strumenti di analisi o di marketing che hai autorizzato.
Durata
2 anni

Se non desideri accettare i cookie da parte nostra, puoi impostare il tuo browser in modo da rifiutare i cookie del nostro sito web. La maggior parte dei browser è configurata per accettare i cookie per impostazione predefinita, ma puoi modificare queste impostazioni per rifiutare del tutto i cookie oppure per ricevere una notifica quando un sito web tenta di impostarne uno.

Se navighi su siti web da più dispositivi, potresti dover aggiornare le impostazioni su ciascun dispositivo.

Anche se alcuni cookie possono essere bloccati con un impatto minimo sull’esperienza di un sito web, bloccare tutti i cookie potrebbe impedirti di accedere ad alcune funzioni e contenuti dei siti che visiti.

Potremmo aggiornare questa Politica sui cookie di tanto in tanto, ad esempio per riflettere modifiche ai cookie che utilizziamo o per altri motivi operativi, legali o normativi. Ti invitiamo a rivisitare questa Politica sui cookie per rimanere informato sul nostro uso dei cookie e delle tecnologie correlate. La data in alto in questa Politica sui cookie indica quando è stata aggiornata l’ultima volta.