API Sözleşme Testi Nedir?
İngilizce: API Contract Testing
API sözleşme testi, tüketici beklentileriyle sağlayıcı yanıtlarını OpenAPI veya Pact gibi sözleşmeler üzerinden karşılaştırır.
API Sözleşme Testi Nedir?
API sözleşme testi, bir API’nin sağlayıcısı ile onu kullanan istemciler arasındaki beklentilerin bozulmadığını doğrular. Sözleşme; endpoint, metod, zorunlu alan, veri tipi, hata kodu ve örnek yanıt gibi kuralları tanımlar.
Mikroservis mimarisinde bir ekip customerId alanını kaldırdığında başka bir ekibin servisi sessizce kırılabilir. Sözleşme testi bu tür değişiklikleri production’a çıkmadan önce yakalamayı amaçlar. Pact gibi araçlarda tüketici beklediği etkileşimi tanımlar; sağlayıcı da bu beklentiyi gerçekten karşılayıp karşılamadığını test eder.
Nasıl Uygulanır?
- OpenAPI şeması veya Pact sözleşmesi kaynak kontrolünde tutulur.
- Tüketici testleri beklenen istek ve yanıtları üretir.
- Sağlayıcı testleri gerçek API’nin bu sözleşmeye uyduğunu kontrol eder.
- CI/CD hattı uyumsuz değişiklikleri release öncesi durdurur.
İş Dünyasında Kullanımı
API test kapsamı yalnızca uçtan uca senaryolara bırakılırsa hatalar geç yakalanır ve testler kırılgan olur. Sözleşme testi, özellikle çok ekipli microservice ortamlarında daha erken geri bildirim verir.
Kamuya açık API’lerde ise sözleşme testi versiyonlama politikasını destekler. Geriye dönük uyumsuz değişiklik yapılacaksa bu durum dokümantasyon, changelog ve müşteri iletişimiyle birlikte yönetilmelidir.
İlgili Terimler
API testi, endpoint'lerin doğru yanıt, hata kodu, performans ve yetki davranışlarını otomatik senaryolarla doğrular.
CI/CDCI/CD, kod değişikliklerini otomatik derleme, test ve dağıtım hatlarından geçirerek sürümü tekrarlanabilir hale getiren DevOps pratiğidir.
MicroserviceMikro hizmet mimarisi, büyük uygulamayı bağımsız geliştirilen, dağıtılan ve ölçeklenen küçük servisler halinde tasarlar.