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 la migrazione tra versioni dell’API.

Questa pagina descrive i diversi livelli di stabilità dell’API, le garanzie di stabilità dell’API stabile, i tipi di modifiche (breaking e non breaking) 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, non breaking e breaking.

Modifiche non breaking

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

Le modifiche non breaking includono:

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

Costruire pensando alle modifiche non breaking

Le modifiche non breaking possono comunque influire sui 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 extensions.exception.code degli errori anziché confrontarli con stringhe di errore leggibili.

Modifiche breaking e deprecazioni

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

Le modifiche breaking includono:

  • Rimuovere o rinominare una query, mutation, subscription, campo o argomento di input esistente.
  • Rimuovere o rinominare valori 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 facoltativo.
  • 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 breaking 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 è previsto un percorso di migrazione, gli integratori devono aggiornare le proprie applicazioni e adottare i nuovi campi durante questo periodo di 12 mesi.
  3. Rimozione definitivaAlla data di rimozione, la funzionalità viene rimossa in modo permanente. Qualsiasi richiesta successiva che usi la funzionalità fallirà la validazione dello schema con 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 ©

Gestisci i cookie

In vigore dal: 20 marzo 2024 · Aggiornato il: 1 settembre 2026

Utilizziamo i cookie per migliorare la tua esperienza su developers.chargetrip.com. Questa informativa 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 proprio servizio, anche se non sono coperti dalla nostra informativa.

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

Un cookie è un piccolo dato 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 legati alla finalità del cookie stesso e la durata del cookie.

I cookie vengono utilizzati per abilitare determinate funzionalità (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 monitorano solo la tua attività su quel particolare sito. I cookie impostati da altri siti e aziende (ossia terze parti) possono essere utilizzati per monitorarti su altri siti web che usano 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 monitorano solo la tua attività su quel particolare sito. I cookie impostati da altri siti e aziende (ossia terze parti) possono essere utilizzati per monitorarti su altri siti web che usano 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 per 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 (di prima parte) o da servizi di terze parti. I cookie di targeting/pubblicitari impostati da terze parti possono essere utilizzati per monitorarti su altri siti web che usano lo stesso servizio di terze parti. Sul nostro sito utilizziamo cookie di targeting/pubblicitari.

I cookie di targeting / pubblicitari vengono utilizzati per determinare quali contenuti promozionali sono più rilevanti e appropriati per te e per 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 (di prima parte) o da servizi di terze parti. I cookie di targeting/pubblicitari impostati da terze parti possono essere utilizzati per monitorarti su altri siti web che usano lo stesso servizio di terze parti. Sul nostro sito utilizziamo cookie di targeting/pubblicitari.

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, così da rispettare la tua scelta a ogni visita e caricare solo gli strumenti di analisi o di marketing che hai consentito.
Durata
2 anni

Se non desideri accettare cookie da parte nostra, puoi impostare il tuo browser in modo che rifiuti 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, potrebbe essere necessario aggiornare le impostazioni su ciascun dispositivo.

Sebbene alcuni cookie possano essere bloccati con un impatto minimo sull’esperienza di un sito web, bloccare tutti i cookie potrebbe impedirti di accedere a determinate funzionalità e contenuti dei siti che visiti.

Potremmo aggiornare periodicamente questa Informativa sui cookie per riflettere, ad esempio, modifiche ai cookie che utilizziamo o per altri motivi operativi, legali o normativi. Ti invitiamo a consultare nuovamente questa Informativa sui cookie per restare informato sul nostro utilizzo dei cookie e delle tecnologie correlate. La data indicata all’inizio di questa Informativa sui cookie indica quando è stata aggiornata l’ultima volta.