Sürümler ve uyumluluk
API’nin tek bir ana sürümü vardır, /v1, ve bu sürüm yalnızca büyür. Bugün yazılan bir entegrasyon, yeni özellikler
geldikçe çalışmaya devam eder: dayandığı hiçbir şey yeniden adlandırılmaz, kaldırılmaz ya da yeni bir anlam kazanmaz.
Sürüm numarası
API’nin 1.62.0 gibi bir sürüm numarası vardır. Bu numara her yayında değişir:
- bir şey eklendiğinde ara sürüm numarası: bir uç nokta, bir alan, bir olay;
- bir açıklama ya da ileti metni düzeltildiğinde ve başka hiçbir şey değişmediğinde yama sürümü numarası.
Bir adresin sunduğu sürümü istediğiniz zaman okuyabilirsiniz:
| Nerede | Ne |
|---|---|
GET /openapi.json | spesifikasyonun info.version alanı |
| Olay beslemesindeki her olay ve her webhook teslimi | api_version: data alanının şemasını izlediği sürüm |
GET /v1/health yanıtında da bir version vardır, ancak bu API’nin sürümü değil,
adrese hizmet veren Sursa yayınının sürümüdür.
Ara sürümü siz seçmezsiniz: her isteğe geçerli sürüm yanıt verir. Aşağıdaki kurallar sayesinde bu güvenlidir.
/v1 içinde neler değişebilir
Bu değişiklikler herhangi bir ara sürümde gelebilir. Entegrasyonunuzu bunlardan etkilenmeyecek şekilde yazın:
- Yeni uç noktalar.
- Yeni isteğe bağlı parametreler ve istek alanları. Bunlar olmadan gönderilen istekler önceki gibi davranır.
- Yanıtlarda, nesnelerde ve olaylarda yeni alanlar.
- Yanıtlardaki sabit değer listelerinde yeni değerler: örneğin yeni bir kart durumu ya da yeni bir olay türü.
- Yeni hata kodları ve yeni yanıt başlıkları.
- Daha az katı hâle gelen sınırlar: daha büyük bir en fazla uzunluk, daha geniş bir aralık.
- Hataların yeniden yazılmış
messagemetinleri ve yeniden yazılmış açıklamalar.
Kodunuzun hazırlıklı olması gerekenler
- Bilmediğiniz alanları yok sayın. Bir yanıtta beklediğinizden fazla alan olduğunda hata vermeyin ve bu alanları reddeden katı şemalar kullanmayın.
- Bilmediğiniz enum değerlerini kabul edin. Yanıttaki her sabit değer listesi büyüyebilir. Bilinmeyen bir değeri hata olarak değil, “diğer” olarak ele alın.
- Bilmediğiniz olay türlerini atlayın: hem webhook’larda hem de akışlarda.
- Bilinmeyen hata kodlarını HTTP durumlarına göre ele alın: Hatalar sayfasına bakın.
- JSON nesnelerindeki alanların sırasına bağımlı olmayın, iletilerin tam metnine de.
/v1 içinde hiçbir zaman değişmeyenler
- Bir yol, parametre, alan ya da enum değeri hiçbir zaman yeniden adlandırılmaz ya da kaldırılmaz.
- Bir alanın türü hiçbir zaman değişmez ve bir alan hiçbir zaman yeni bir anlam (örneğin yeni birimler) kazanmaz.
- Bugün kabul edilen bir istek daha sonra reddedilmez.
- Başarılı bir yanıtın durum kodu aynı kalır.
- Hata kodları anlamlarını, hata yanıtlarının
detailalanı da biçimini korur. - Olay türleri hiçbir zaman yeniden adlandırılmaz ya da kaldırılmaz;
datanesnelerine yalnızca yeni alanlar eklenir.
Uyumsuz değişiklikler
Bir gün uyumsuz bir değişiklik gerekirse bu değişiklik, /v1 sürümünün yanında /v2 gibi yeni bir ana sürüm olarak
yayımlanır. /v1 değişmeden çalışmaya devam eder ve iki sürüm yan yana çalışır.
Bir yol kullanımdan kaldırılacağı zaman:
- Spesifikasyonda
deprecatedolarak işaretlenir ve değişiklik günlüğünde kapatılacağı tarihle birlikte listelenir. - Yanıtları
Deprecation: trueveSunset: <date>başlıklarını taşır. - Duyurudan sonra en az 180 gün çalışmaya devam eder. API anahtarları bu yolu kullanan kuruluşlara en az 90 gün önceden yazılı olarak bildirilir.
- Kullanım sonu tarihinden sonra 90 gün daha
api.gonekoduyla410yanıtı verir.
Günlüklerinizde ya da izleme araçlarınızda Deprecation başlığını takip edin: bu başlık, kullandığınız bir yolun
kaldırılacağının en erken işaretidir.
Haberdar kalma
Bu portalın değişiklik günlüğü her yayını, nelerin eklendiği ve nelerin kullanım dışı bırakıldığıyla birlikte listeler. Kendi entegrasyonunuzu yükseltmeden önce kodunu, entegrasyonu geliştirirken temel aldığınız sürümden bu yana eklenen kayıtlarla karşılaştırın.