Versionamento delle API e compatibilità all'indietro
Faccia evolvere in sicurezza le API dei microservizi gRPC tra molti team usando strategie di versionamento e regole di compatibilità protobuf, così i client meno recenti non smettono mai di funzionare.
Versionamento delle API e compatibilità all'indietro è una lezione gRPC & High Performance APIs gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento gRPC & High Performance APIs, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso gRPC & High Performance APIs include 4 lezioni in totale.
Parti di questa lezione non sono ancora state tradotte e vengono mostrate in inglese.
The Versioning Challenge
In a microservice estate, dozens of clients depend on a service. You cannot redeploy them all at once, so the API must change without breaking existing callers.
Wire Compatibility in Protobuf
Protobuf is forgiving: unknown fields are ignored, and missing fields take defaults. This makes additive changes safe by design.
Safe vs Breaking Changes
Safe: add fields, add methods, add enum values. Breaking: remove/rename fields, change field types, reuse tag numbers, change method signatures.
Never Reuse Tag Numbers
Field tag numbers identify fields on the wire. Reusing a retired number corrupts old data. Mark removed fields reserved to lock the number.
message User {
reserved 3, 5;
reserved 'old_name';
}Package-Based Versioning
For real breaking changes, version the package. Old and new live side by side so clients migrate at their own pace.
package myapp.orders.v1;
// later, breaking change:
package myapp.orders.v2;Running v1 and v2 Together
The server registers both service versions. New clients call v2; old clients keep using v1 until they upgrade.
ordersv1.RegisterOrdersServer(s, &v1impl{})
ordersv2.RegisterOrdersServer(s, &v2impl{})Deprecating Fields and Methods
Mark items deprecated to warn callers before removal, giving them a migration window.
string legacy_id = 2 [deprecated = true];Enum Evolution
Always reserve enum value 0 as UNSPECIFIED. Add new values at the end; old clients map unknown values to their default safely in proto3.
enum Status {
STATUS_UNSPECIFIED = 0;
ACTIVE = 1;
ARCHIVED = 2;
}Automated Compatibility Checks
Tools like Buf lint proto changes in CI and reject breaking edits before merge, enforcing compatibility across teams automatically.
buf breaking --against '.git#branch=main'Schema Registries
A central registry (e.g. the Buf Schema Registry) stores versioned protos so every team consumes a single source of truth and generates consistent stubs.
Migration Strategy
A clean migration: add v2 alongside v1, move clients gradually, monitor v1 usage, then retire v1 only when traffic reaches zero.
Quick Check
Test your versioning knowledge.
Recap
You learned API versioning and compatibility:
- Additive changes are wire-safe; removals/renames/type changes break
- Never reuse tag numbers — mark them
reserved - Version packages (v1/v2) for breaking changes and run both
- Reserve enum 0 as UNSPECIFIED; deprecate before removing
- Enforce compatibility with Buf and a schema registry
Domande Frequenti
La lezione «Versionamento delle API e compatibilità all'indietro» è gratuita?
Sì — il testo completo di «Versionamento delle API e compatibilità all'indietro» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso gRPC & High Performance APIs, passa a CoddyKit PRO. Il corso gRPC & High Performance APIs include 4 lezioni in totale.
Cosa imparerò in «Versionamento delle API e compatibilità all'indietro»?
Faccia evolvere in sicurezza le API dei microservizi gRPC tra molti team usando strategie di versionamento e regole di compatibilità protobuf, così i client meno recenti non smettono mai di funzionar… Eserciti gRPC & High Performance APIs con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare gRPC & High Performance APIs?
Non è richiesta alcuna esperienza precedente. gRPC & High Performance APIs su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.
Quanto tempo richiede la lezione «Versionamento delle API e compatibilità all'indietro»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione gRPC & High Performance APIs?
Sì. Ogni lezione gRPC & High Performance APIs include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Progettazione di microservizi gRPC
- Architetture gRPC basate sugli eventi
- Interoperabilità tra linguaggi
- Versionamento delle API e compatibilità all'indietro