gRPC en API's met hoge prestaties · Les

API-versioning en achterwaartse compatibiliteit

Evolueer gRPC-microservice-API's veilig binnen meerdere teams met versioningstrategieën en protobuf-compatibiliteitsregels, zodat oude clients nooit breken.

Les 4 van 413 stappen

API-versioning en achterwaartse compatibiliteit is een gratis gRPC en API's met hoge prestaties-les op CoddyKit. Dit is les 4 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject gRPC en API's met hoge prestaties. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus gRPC en API's met hoge prestaties bevat in totaal 4 lessen.

De uitdaging van versiebeheer

In een landschap van microservices zijn tientallen clients afhankelijk van één service. U kunt ze niet allemaal tegelijk opnieuw implementeren, dus de API moet veranderen zonder bestaande aanroepers te breken.

Compatibiliteit over de kabel in Protobuf

Protobuf is vergevingsgezind: onbekende velden worden genegeerd en ontbrekende velden krijgen standaardwaarden. Daardoor zijn uitbreidende wijzigingen standaard veilig.

Veilige versus brekende wijzigingen

Veilig: velden toevoegen, methoden toevoegen, enumwaarden toevoegen. Brekend: velden verwijderen of hernoemen, veldtypen wijzigen, tagnummers opnieuw gebruiken, handtekeningen van methoden wijzigen.

Gebruik tagnummers nooit opnieuw

De tagnummers van velden identificeren velden over de kabel. Een hergebruikt ingetrokken nummer beschadigt oude gegevens. Markeer verwijderde velden als reserved om het nummer te blokkeren.

message User {
  reserved 3, 5;
  reserved 'old_name';
}

Versiebeheer op basis van pakketten

Gebruik voor echte brekende wijzigingen een nieuwe pakketversie. De oude en nieuwe versie kunnen naast elkaar bestaan, zodat clients in hun eigen tempo kunnen migreren.

package myapp.orders.v1;
// later, breaking change:
package myapp.orders.v2;

v1 en v2 samen uitvoeren

De server registreert beide serviceversies. Nieuwe clients roepen v2 aan; oude clients blijven v1 gebruiken totdat ze worden bijgewerkt.

ordersv1.RegisterOrdersServer(s, &v1impl{})
ordersv2.RegisterOrdersServer(s, &v2impl{})

Velden en methoden afschrijven

Markeer items als verouderd om aanroepers vóór verwijdering te waarschuwen en ze tijd te geven om te migreren.

string legacy_id = 2 [deprecated = true];

Evolutie van enums

Reserveer enumwaarde 0 altijd als UNSPECIFIED. Voeg nieuwe waarden aan het einde toe; oude clients zetten onbekende waarden in proto3 veilig om naar hun standaardwaarde.

enum Status {
  STATUS_UNSPECIFIED = 0;
  ACTIVE = 1;
  ARCHIVED = 2;
}

Geautomatiseerde compatibiliteitscontroles

Tools zoals Buf controleren proto-wijzigingen tijdens CI en weigeren brekende aanpassingen vóór het mergen. Zo wordt compatibiliteit automatisch afgedwongen tussen teams.

buf breaking --against '.git#branch=main'

Schemaregisters

Een centraal register (bijvoorbeeld het Buf Schema Registry) slaat versiebeheer­de proto's op, zodat elk team één bron van waarheid gebruikt en consistente stubs genereert.

Migratiestrategie

Een nette migratie verloopt als volgt: voeg v2 naast v1 toe, verplaats clients geleidelijk, houd het gebruik van v1 in de gaten en trek v1 pas buiten gebruik wanneer het verkeer nul heeft bereikt.

Korte controle

Test uw kennis van versiebeheer.

Samenvatting

U hebt API-versiebeheer en compatibiliteit geleerd:

  • Uitbreidende wijzigingen zijn veilig over de kabel; verwijderingen, hernoemingen en typewijzigingen zijn brekend
  • Gebruik tagnummers nooit opnieuw — markeer ze als reserved
  • Gebruik pakketversies (v1/v2) voor brekende wijzigingen en voer beide versies uit
  • Reserveer enum 0 als UNSPECIFIED en schrijf waarden af vóór u ze verwijdert
  • Dwing compatibiliteit af met Buf en een schemaregister
Gratis beginnen

Leer gRPC en API's met hoge prestaties met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
12
Lessen
48

Veelgestelde vragen

Is de les “API-versioning en achterwaartse compatibiliteit” gratis?

Ja — de volledige tekst van “API-versioning en achterwaartse compatibiliteit” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus gRPC en API's met hoge prestaties wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus gRPC en API's met hoge prestaties bevat in totaal 4 lessen.

Wat leer ik in “API-versioning en achterwaartse compatibiliteit”?

Evolueer gRPC-microservice-API's veilig binnen meerdere teams met versioningstrategieën en protobuf-compatibiliteitsregels, zodat oude clients nooit breken. Je oefent met gRPC en API's met hoge prestaties door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met gRPC en API's met hoge prestaties te beginnen?

Ervaring vooraf is niet nodig. gRPC en API's met hoge prestaties op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 4 van 4.

Hoe lang duurt de les “API-versioning en achterwaartse compatibiliteit”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over gRPC en API's met hoge prestaties?

Ja. Elke les over gRPC en API's met hoge prestaties bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. gRPC-microservices ontwerpen
  2. Eventgedreven gRPC-architecturen
  3. Interoperabiliteit tussen programmeertalen
  4. API-versioning en achterwaartse compatibiliteit
← Terug naar gRPC en API's met hoge prestaties