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.