API testleri, UI prototipleme, yük testleri ve sözleşme odaklı geliştirme için JSON Schema'dan gerçekçi sahte JSON verisi üretin.
Adım 1 – Bir JSON Schema sağlayın
- Sol editöre bir şema yapıştırın veya dosya/URL/örnekten içe aktarın.
- Mock verinin üretime yakın olması için mümkünse gerçek API şemanızla başlayın.
Adım 2 – Şemayı mock üretimine uygun hale getirin
- Şu gibi desteklenmeyen anahtar kelimelerden kaçının:
$ref, dependencies, ve koşullu şemalar (if/then/else). - Şemanız
$ref, kullanıyorsa, şemaları önceden yükleyip dereference eden bir araçtan Mock Üretici'yi açmayı deneyin (ör. code→schema sayfalarındaki “Mock Veri Üret”). - Şemayı type, properties, required, items, formats ve kısıtlar üzerinde tutun.
Adım 3 – Üretim ayarlarını yapılandırın
- Gerçekçi isim, adres ve telefon numaraları için bir locale seçin.
- Tekrarlanabilir mock veri için seed belirleyin (testler ve snapshot'lar için harika).
- Batch boyutu, dizi sayısı, sayı dağılımı ve optional alan olasılığını ayarlayın.
- Doğrulama ve UI hata yönetimini test etmek için eksik/kirli veri simülasyonu kullanın.
Adım 4 – Üretin ve çıktıyı inceleyin
- Şema kısıtlarını izleyen çıktı üretmek için “Mock Veri Üret”a tıklayın.
- Değerler beklenmedikse şemayı sıkılaştırın (format, enum, min/max) ve yeniden üretin.
Adım 5 – Mock veriyi testlerde ve üreticilerde kullanın
- JSON'u kopyalayın veya indirin; unit/integration testler için fixture olarak kullanın.
- Üretilen JSON'u kod üreticilere (TypeScript/Java/etc.) vererek eşleşen DTO'lar oluşturun.
JSON Schema özellikleri hakkında önemli not
- Şu anahtar kelimelere dayanan şemalar
$ref, dependencies, veya if/then/else mock üretiminden önce basitleştirilmeli veya dereference edilmelidir. - Şema doğrulayıcıları taslakları ve anahtar kelimeleri yorumlama konusunda farklılık gösterebilir; katı sözleşme testi için CI'da tam bir doğrulayıcı kullanın.
Örnek: JSON Schema → mock JSON
// JSON Schema (input)
{
"type": "object",
"properties": {
"id": { "type": "string", "format": "uuid" },
"email": { "type": "string", "format": "email" },
"active": { "type": "boolean" },
"createdAt": { "type": "string", "format": "date-time" }
},
"required": ["id", "email", "active", "createdAt"]
}
// Mock JSON (output example)
{
"id": "9b1deb4d-3b7d-4bad-9bdd-2b0d7b3dcb6d",
"email": "[email protected]",
"active": true,
"createdAt": "2024-03-01T10:15:00.000Z"
}