Sürümleme ve Kullanımdan Kaldırma
Entegrasyonunuzun bir sabah habersiz kırılmaması için sözleşmenin neyin değişebileceğini ve neyin değişemeyeceğini yazılı olarak taahhüt ediyoruz.
Ana sürüm URL’de taşınır
/api/public/v1Ana sürüm yalnızca geriye uyumsuz bir değişiklik gerektiğinde artar. v1 ve v2
bir süre birlikte yayında kalır; hiçbir zaman bir gecede geçiş yapmanız istenmez.
Geriye uyumlu sayılan değişiklikler
Bunlar yeni ana sürüm gerektirmez; istemciniz bunlara dayanıklı olmalıdır:
- Yanıta yeni alan eklenmesi.
- Yeni bir endpoint veya yeni bir isteğe bağlı sorgu parametresi eklenmesi.
- Bir enum’a yeni değer eklenmesi (ör. yeni bir alarm türü).
- Hata mesajı metninin değişmesi —
error.codedeğişmez, ona bakın. - Alanların JSON içindeki sırasının değişmesi.
Bilinmeyen alanları yok sayın, bilinmeyen enum değerlerinde çökmeyin ve karar verirken hata metnine değil error.code değerine bakın. Bu üç kural entegrasyonunuzu sürüm yükseltmelerinin çoğundan korur.
Yeni ana sürüm gerektiren değişiklikler
- Alan kaldırılması veya adının değişmesi.
- Alan tipinin değişmesi.
- Bir alanın isteğe bağlıyken zorunlu hale gelmesi.
- Varsayılan davranışın değişmesi.
- Bir endpoint’in kaldırılması.
Kullanımdan kaldırma süreci
Bir uç veya alan kaldırılacağında süreç sessiz değildir; API’nin kendisi uyarır. Kullanımdan kaldırma ilanı ile kapanma arasında en az 180 gün vardır.
Sürüm notlarına yazılır ve etkilenen uçların tüm yanıtlarına makine-okunur başlıklar eklenir.
En az 180 gün boyunca eski ve yeni davranış birlikte çalışır. Bu süre içinde geçişinizi yapabilirsiniz.
Sunset tarihinden sonra uç 410 Gone döner.
Uyarı başlıkları
Kullanımdan kaldırılmış bir uca yapılan her istek şu başlıkları döndürür:
| Başlık | Anlamı |
|---|---|
Deprecation | Ucun kullanımdan kaldırıldığı tarih (RFC 9745). |
Sunset | Ucun kapatılacağı tarih (RFC 8594). |
Link | Geçiş rehberinin adresi, rel="sunset" ile. |
Warning | Kısa, insan tarafından okunabilir açıklama. |
Örnek:
HTTP/1.1 200 OK
Deprecation: Sat, 01 Aug 2026 00:00:00 GMT
Sunset: Mon, 01 Feb 2027 00:00:00 GMT
Link: <https://developer.frigolive.nl/tr/docs/versioning>; rel="sunset"
Warning: 299 - "Bu uç /shipments/{shipment_id}/tracking/ ile değiştirildi."Uyarı başlıkları istek başarısız olsa bile döner; böylece kırılmayı loglarınızda kapanmadan önce görürsünüz.
Bunu izlemenin en kolay yolu
Backend’inizde Sunset başlığı gelen yanıtları loglayın ve bir uyarı üretin:
response = requests.get(url, headers=headers, timeout=20)
sunset = response.headers.get("Sunset")
if sunset:
logger.warning("Frigolive ucu kapatılacak: %s -> %s", url, sunset)Ayrıca sürüm notlarını Atom akışından takip edebilirsiniz.
Sürüm notları
Tüm sözleşme değişiklikleri Sürüm Notları sayfasında tarih sırasıyla yayınlanır.