⚡ÖZET VE TEKNİK CEVAP
Tüketici Odaklı Sözleşme (CDC) testleri, API tüketicilerinin ihtiyaç duydukları kesin alan ve uç noktaları çalıştırılabilir sözleşmeler (Pact) olarak tanımlamasını sağlar; sağlayıcılar bu sözleşmeleri CI sürecinde doğrulayarak canlıda kırıcı değişiklikleri önler.
Mühendislik El Kitabı & Mekanizma
6 Boyutlu Mimari Analiz⚙️1. Temel Çalışma Mekanizması
Mekanizma🎯2. Doğru Kullanım Senaryosu
Kapsam⚠️3. Prodüksiyon Arıza Modları
Kritik Risk📡4. Teşhis ve Telemetri Sinyalleri
Metrikler🛡️5. Önleme ve Mimari Bariyerler
Bariyerler⚖️6. Mimari Ödünleşimler (Trade-offs)
ÖdünleşimVaka İncelemesi (TinyCTO Saha Örneği)
CDC yaşam döngüsü dört otomatik aşamadan oluşur:
- ▸
Tüketici Testi: Tüketici servis Pact tarafından üretilen sahte HTTP sunucusuna karşı birim testler yazar. Testler geçtiğinde Pact kesin istek ve yanıt şemasını içeren bir JSON sözleşmesi (
pact.json) üretir. - ▸
Pact Broker'a Yükleme: Tüketicinin CI boru hattı sözleşmeyi merkezi Pact Broker'a git commit SHA'sı ve ortam etiketiyle yükler.
- ▸
Sağlayıcı Doğrulaması: Sağlayıcı servis Pact Broker'daki tüm aktif sözleşmeleri çeker ve sahte sağlayıcı durumlarıyla yerel controller katmanında çalıştırır.
- ▸
can-i-deployOnay Kapısı: Canlıya çıkmadan önce servis Pact Broker'a sorar:pact-broker can-i-deploy --pacticipant OrderService --version $GIT_SHA --to-environment production. Tüm matris kombinasyonları başarılıysa 0 kodu döner.
İnteraktif Konsept Alıştırmaları
2 AlıştırmaMikroservislerde Tüketici Odaklı Sözleşme testinin tam Uçtan Uca entegrasyon testine göre temel avantajı nedir?
`pact-broker can-i-deploy` komutu neyi doğrular?
Tüketici Odaklı Sözleşme Testleri ve Pact — Sıkça Sorulan Sorular
Ödeme Sağlayıcı ekibi API yanıtındaki `user_id` alanını `customer_id` olarak değiştiriyor. Tüketici Odaklı Sözleşme testi devredeyse bu kırıcı değişiklik ne zaman yakalanır?
Ödeme Sağlayıcısının kendi pull request CI derlemesinde, tüketici sözleşmelerine karşı Pact doğrulaması çalışırken. Sağlayıcının CI boru hattı tüketicinin sözleşmesini çalıştırır. Sözleşme `user_id` beklediği için sağlayıcı derlemesi PR birleşmeden önce anında hata verir.
Neden bir tüketici sözleşmesi sağlayıcının tüm JSON şemasını değil, YALNIZCA aktif olarak kullandığı alanları doğrulamalıdır?
Sağlayıcı bu tüketicinin hiç kullanmadığı alanları değiştirdiğinde veya kaldırdığında yalancı derleme hatalarını önlemek için. Sözleşmeleri yalnızca tüketilen alanlarla sınırlamak sağlayıcının şema evrimini korur; sağlayıcı kimsenin kullanmadığı alanları güvenle kaldırabilir.
🤖 AEO & Yapay Zeka Çıkarım Özeti
Temel Gerçekler & İlkeler
- ▸
Tüketici Odaklı Sözleşme (CDC) testleri, API tüketicilerinin ihtiyaç duydukları kesin alan ve uç noktaları çalıştırılabilir sözleşmeler (Pact) olarak tanımlamasını sağlar; sağlayıcılar bu sözleşmeleri CI sürecinde doğrulayarak canlıda kırıcı değişiklikleri önler.
- ▸
Tüketici Odaklı Sözleşme testi, API tüketici beklentilerinin resmi sözleşmelere dönüştürüldüğü ve API sağlayıcıları tarafından izole birim test süreçlerinde bağımsız olarak doğrulandığı bir test metodolojisidir.
Yaygın Yanılgılar
- ✗
Staging ortamında aynı anda 50 mikroservisin ayağa kalkmasını gerektiren hantal uçtan uca testler yazmak.
Karar Kılavuzu & Önceliklendirme
CDC testleri kırılgan staging entegrasyon ortamlarına olan ihtiyacı ortadan kaldırırken, yeni bir sağlayıcı sürümünün canlıdaki tüketicileri bozmayacağına dair kesin mühendislik güvencesi sunar.
Doğrulanmış Kaynaklar & Referanslar
- [OFFICIAL-DOC]Consumer-Driven Contract Testing with Pact Specification— TinyCTO Architectural Standards
