gRPC & High Performance APIs · Pelajaran

Pemberian Versi API & Kompatibilitas Mundur

Kembangkan API layanan mikro gRPC dengan aman di berbagai tim menggunakan strategi pemberian versi dan aturan kompatibilitas protobuf, sehingga klien lama tidak pernah rusak.

Pelajaran 4 dari 413 langkah

Pemberian Versi API & Kompatibilitas Mundur adalah pelajaran gRPC & High Performance APIs gratis di CoddyKit. Ini adalah pelajaran 4 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar gRPC & High Performance APIs, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus gRPC & High Performance APIs mencakup 4 pelajaran total.

Bagian dari pelajaran ini belum diterjemahkan dan ditampilkan dalam bahasa Inggris.

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
Gratis untuk memulai

Belajar gRPC & High Performance APIs dengan tutor AI — gratis

Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.

Kursus
12
Pelajaran
48

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Pemberian Versi API & Kompatibilitas Mundur” gratis?

Ya — teks lengkap “Pemberian Versi API & Kompatibilitas Mundur” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus gRPC & High Performance APIs, upgrade ke CoddyKit PRO. Kursus gRPC & High Performance APIs mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Pemberian Versi API & Kompatibilitas Mundur”?

Kembangkan API layanan mikro gRPC dengan aman di berbagai tim menggunakan strategi pemberian versi dan aturan kompatibilitas protobuf, sehingga klien lama tidak pernah rusak. Kamu berlatih gRPC & High Performance APIs dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai gRPC & High Performance APIs?

Tidak diperlukan pengalaman sebelumnya. gRPC & High Performance APIs di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 4 dari 4.

Berapa lama pelajaran “Pemberian Versi API & Kompatibilitas Mundur” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran gRPC & High Performance APIs ini?

Ya. Setiap pelajaran gRPC & High Performance APIs menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Merancang Layanan Mikro gRPC
  2. Arsitektur gRPC Berbasis Peristiwa
  3. Interoperabilitas Lintas Bahasa
  4. Pemberian Versi API & Kompatibilitas Mundur
← Kembali ke gRPC & High Performance APIs