Ekipler veya harici ortaklar arasında API'lerle çalışırken, isteklerin ve yanıtların biçiminin öngörülebilir kalması özellikle önemlidir. Sözleşme testi, her iki tarafın da - istemci ve sunucu - değişim yapısını kabul ettiğini ve güncellemeler sırasında ihlal etmediğini doğrulamanızı sağlar.
Üretime geçmeden önce API uyumluluğunu belgelere veya tüketici beklentilerine göre otomatik olarak kontrol eden sözleşme testleri uyguluyoruz.
API sözleşmesi nedir
Bir sözleşme, aşağıdakileri tanımlayan bir anlaşmadır:- Hangi alanların istek ve yanıt içerdiği
- Hangi veri formatlarına izin verilir
- Hangi durum kodlarının iade edildiği
- Hangi zorunlu parametreler gereklidir
Sözleşme ihlali = potansiyel müşteri veya hizmet hatası.
Nasıl çalışır
| Parti | Neler test ediliyor |
|---|---|
| Sağlayıcı (API) | API, yanıt yapısı için müşteri beklentilerini karşılamalıdır |
| Müşteri (tüketici) | Müşteri belirli bir şema bekliyor - test karşılandığını kontrol ediyor |
| Çift yönlü | İki yönlü test: hem istemci hem de sunucu sözleşmeyi kabul eder |
Kullanılan araçlar: Pakt, Bahar Bulut Sözleşmesi, Dredd, Postacı Sözleşme Testleri.
Sözleşme testinin faydaları
Tükenmeden önce uygunsuzlukların belirlenmesi
Müşterileri kıran "sessiz" değişikliklere karşı koruyun
API sürümlerini güvenle güncelleyin
Geliştirme ekipleri arasındaki güveni artırın
Sözleşme değişiklik geçmişini günlüğe kaydetme
Nasıl uyguluyoruz
OpenAPI/Pact sözleşmelerini tanımlama
Her taahhütte otomatik test çalışmaları ile CI entegrasyonu
Sözleşme değişikliklerinin görselleştirilmesi ve tarihçesi
Evreleme/üretim
Dış Entegratörler için Yayın Sözleşmeleri
Özellikle önemli olan yerlerde
Paylaşılan sorumluluk mikro hizmetleri
Harici B2B entegrasyonlarına sahip platformlar
Birden Çok Bağımsız Komutla API'ler üzerinde çalışma
Hatanın kabul edilemez olduğu kritik sistemler (finans, kamu hizmetleri)
Sözleşme testi, sunucu ile müşteri arasında güvenilir bir köprüdür. Hiçbir güncellemenin entegrasyonu bozmadığı ve beklenmedik hatalar getirmediği bir süreç oluşturmanıza yardımcı olacağız.