Quando l'API si sviluppa, ci sono nuovi metodi, parametri e logiche. Per non compromettere il funzionamento dei clienti correnti, viene applicata la versioning dell'API. Supportiamo più approcci di versioning, consentendo agli integratori di utilizzare la versione appropriata dell'interfaccia senza compromettere il funzionamento stabile.
Ciò è importante sia per la scalabilità della piattaforma che per l'implementazione di aggiornamenti, test o manutenzione dei vecchi client.
Metodi di versioning
| Metodo | Descrizione e vantaggi |
|---|---|
| Versione in URL ('/v1/') | Metodo più chiaro e popolare - comodo per l'API di REST |
| Titolo di Accept | Esempio: 'Accept: application/vnd. api+json; versione = 2 '- separa i dati dalla versione |
| GraphQL alias / versioned fields | Diverse versioni tramite alias: «userV1», «userV2» - utile per migrare gradualmente |
| Versioni a livello di schema | Schemi e moduli separati in OpenAPI/Swagger per ogni versione |
Come implementato
Struttura API con «/v1/», «/v2/» e percorsi indipendenti
Verifica intestazioni «Accept» e «X-API-Version»
GraphQL supporta gli alias e gli schemi versionati («userV1», «userV2»)
Possibilità A/B di testare nuove versioni senza rischi per la produzione
Loging di ciascuna versione per l'analisi e la migrazione
Vantaggi per le aziende e gli integratori
Supporto dei clienti più vecchi senza rallentamento
Lavoro parallelo di più generazioni di API
Implementazione sicura di nuove funzionalità senza interruzione della compatibilità
Flessibilità per la scalabilità e l'aggiornamento dell'infrastruttura
Migrazione trasparente tra versione controllata e analisi
Dove è particolarmente importante
Piattaforme con più client esterni
Progetti con approccio API-first e ciclo di vita prolungato
Integrazione con banche, provider, B2B partner
Sistemi con client mobile o IoT a lunga vita
La versioning dell'API è la base per l'affidabilità e la flessibilità delle integrazioni. Indipendentemente dal formato ( , o ), garantiamo lo sviluppo sicuro delle interfacce, senza guasti, conflitti e perdita di compatibilità.