JSON Pointer yolları, dizi semantiği, tür değişiklikleri ve şema doğrulamasıyla güvenilir API regresyon incelemesi.
Biçim farkını sözleşme farkından ayırın
Düz metin diff girinti, anahtar sırası veya satır sonu değiştiğinde gürültü üretir. Yapısal diff JSON’u ayrıştırır ve /customer/address/city gibi yolları karşılaştırır. Böylece yalnızca sunum değişen içerik ile tüketiciyi etkileyen veri değişikliği ayrılır.
Anahtar ekleme çoğu zaman geriye uyumludur; zorunlu alan silme veya string değerin number’a dönmesi kırıcı olabilir. Ancak etki, tüketici sözleşmesine bağlıdır. Araç değişikliği gösterir, iş etkisini belirlemez.
Diziler için semantiği açık seçin
İndeks bazlı karşılaştırma sıralı olaylar ve tuple benzeri diziler için uygundur. Kimliğe sahip nesne listelerinde başa tek öğe eklemek sonraki tüm indeksleri değişmiş gösterebilir. Böyle listeleri karşılaştırmadan önce sabit bir anahtarla eşleştirmek veya sıralamak gerekir.
Sıralamanın anlamlı olduğu alanlarda otomatik sıralama gerçek bir regresyonu gizleyebilir. Test sözleşmesi, dizinin küme mi sıra mı olduğunu belirtmelidir.
- Kimlik alanını belgeleyin.
- Sıra semantiğini testte açıkça yazın.
- Büyük payload’larda düğüm ve derinlik sınırı kullanın.
Tür değişikliklerini önceliklendirin
null, boolean, number, string, array ve object ayrımı tüketici kodunu doğrudan etkiler. `true` ile `"true"` görsel olarak yakın olsa da koşul, serileştirme ve şema doğrulamasında farklıdır. Yapısal raporda tür değişikliklerini ayrı kategoriye ayırmak triage süresini kısaltır.
Sayı hassasiyeti ve tarih formatı ayrıca kontrol edilmelidir. JSON sayıları JavaScript’te güvenli tamsayı sınırını aşabilir; tarih ise yalnızca stringdir ve ISO 8601 uyumu şema veya alan kuralıyla doğrulanır.
Diff’i şema ve tüketici testleriyle tamamlayın
Yapısal eşitlik JSON Schema doğrulaması değildir. Gerekli alan, pattern, enum veya additionalProperties kuralları için şema kullanın. Diff raporunu OpenAPI sözleşme testi ve gerçek tüketici fixture’larıyla birleştirin.
CI içinde hassas üretim payload’larını kaydetmeyin. Temsili ve anonimleştirilmiş fixture kullanın; raporda token, e-posta veya kimlik değerleri kalmadığını kontrol edin. Tarayıcı içi inceleme aktarımı azaltır ama kopyalanan raporun güvenliğini kullanıcı belirler.
Görsel önerisi: Eski/yeni JSON ağaçları ve aralarındaki eklenen, silinen, değişen yol bağlantıları. Bu içerik genel bilgilendirme amaçlıdır; hukuki veya güvenlik danışmanlığı değildir.