Lewati ke konten

Versi & Penghentian

Versi adalah segmen jalur, dan itu satu-satunya tempat versi muncul:

https://api.zelnum.com/api/v1

Hanya ada satu versi aktif. Identitasnya dalam dokumen OpenAPI adalah 1.0.0; segmen jalur v1 adalah yang Anda tuju. Body respons sengaja tidak mengulang versi, jadi tidak ada field kedua yang perlu disinkronkan.

KelasContohDampak bagi Anda
AditifEndpoint baru, field permintaan opsional baru, field respons baru, produk baru di katalogTidak ada. Tidak ada kenaikan versi, tidak ada tindakan.
PerilakuNilai baru di dalam enum yang sudah ada seperti error_code atau billing_status; nilai default yang berubahBiasanya tidak ada, tetapi dapat merusak pencocokan ekshaustif.
BreakingMenghapus atau mengganti nama field, mengubah tipe, mengubah makna sebuah status, mewajibkan header baruMemerlukan versi baru.
KontrakDokumentasi keliru tentang apa yang dilakukan APITidak ada — tetapi lihat di bawah.

Dokumentasi dikoreksi di tempat ketika perilaku API dijelaskan secara keliru. Itu adalah perubahan dokumentasi, bukan perubahan kontrak: API tidak berubah, deskripsinya yang berubah. Karena koreksi justru merupakan peristiwa yang tidak dapat Anda lihat pada entri changelog berbentuk “tidak ada yang berubah”, koreksi dicantumkan secara eksplisit di Catatan Perubahan.

Jika sebuah koreksi mengubah sesuatu yang menjadi dasar integrasi Anda, koreksi itu muncul di sana sebagai catatan, bukan sebagai suntingan diam-diam.

Saat sebuah operasi dihentikan penggunaannya, operasi itu ditandai deprecated: true di dokumen OpenAPI, dan situs ini mendokumentasikan penggantinya. Operasi tersebut tetap berfungsi selama masa pemberitahuan, dan masa pemberitahuan dinyatakan di tempat penghentian diumumkan.

Penghentian tidak pernah berada pada rilis yang sama dengan pengenalan penggantinya. Keduanya aktif bersamaan, sehingga Anda dapat bermigrasi sesuai jadwal Anda sendiri, bukan saat terjadi insiden.

POST /v1/realtime/detect dipertahankan untuk klien pra-rilis dan ditandai deprecated dalam kontrak. Integrasi baru sebaiknya menggunakan endpoint khusus seri.

Ini penggantian nama, bukan perancangan ulang — body permintaan dan responsnya berbentuk sama:

LamaSaat ini
EndpointPOST /v1/realtime/detectPOST /v1/realtime/check/phone atau POST /v1/realtime/check/email
SeriTersirat dari produk yang Anda kirimEksplisit di jalur, dan harus cocok dengan produknya
Field produkproducts (alias)product_ids
Idempotency-KeyWajibWajib

Migrasi hanya perlu perubahan dua baris:

Terminal window
# Before
curl -X POST "https://api.zelnum.com/api/v1/realtime/detect" \
-H "X-API-Key: YOUR_KEY_HERE" \
-H "Idempotency-Key: UNIQUE_REQUEST_ID" \
-H "Content-Type: application/json" \
-d '{"identifier":"+8613800138000","products":[47]}'
# After — the series moves into the path and the field is renamed
curl -X POST "https://api.zelnum.com/api/v1/realtime/check/phone" \
-H "X-API-Key: YOUR_KEY_HERE" \
-H "Idempotency-Key: UNIQUE_REQUEST_ID" \
-H "Content-Type: application/json" \
-d '{"identifier":"+8613800138000","product_ids":[47]}'

Mengirim product_ids dan products sekaligus dalam satu permintaan ditolak sebagai 400 invalid_realtime_request, jadi keduanya tidak boleh dicampur selama peluncuran bertahap.

  • OpenAPI — kontrak yang dapat dibaca mesin, termasuk flag deprecated
  • Catatan Perubahan — apa yang berubah, dan kapan