JSON Schema Validation Uygulanması - Rest-to-Soap Tipinde Bir Api Proxy
Bu senaryoda Apinizer üzerinde oluşturulan Mock API'ye JSON Schema Validation politikasının uygulanması test edilecektir.
Senaryoda gelen isteklerin JSON body’sinin aynı olduğunu varsayarak, bunu All kısmına ekleyelim.
Politika olarak JSON Schema Validation ekliyoruz.
Mock Api'de örnek request body aşağıdaki gibi olacak:
{
"Sorgula": {
"kriterListesi": {
"BilesikKutukSorgulaKimlikNoSorguKriteri": {
"DogumAy": 5,
"DogumGun": 21,
"DogumYil": 1990,
"KimlikNo": "12345678901"
}
}
}
}
Buna uygun bir JSON Schema Validation aşağıdakileri içermekte:
- DogumAy: 1 ile 12 arasında bir değer gönderilebilir.
- DogumGun: 1 ile 31 arasında bir değer gönderilebilir.
- DogumYil: 1800 ile 2100 arasında bir değer gönderilebilir.
- KimlikNo: 11 karakter uzunluğunda bir string (Kimlik numarası) olmalıdır.
Politikaya eklenecek JSON Schema Validation:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"Sorgula": {
"type": "object",
"properties": {
"kriterListesi": {
"type": "object",
"properties": {
"BilesikKutukSorgulaKimlikNoSorguKriteri": {
"type": "object",
"properties": {
"DogumAy": {
"type": "integer",
"minimum": 1,
"maximum": 12
},
"DogumGun": {
"type": "integer",
"minimum": 1,
"maximum": 31
},
"DogumYil": {
"type": "integer",
"minimum": 1800,
"maximum": 2100
},
"KimlikNo": {
"type": "string",
"minLength": 11,
"maxLength": 11
}
},
"required": ["DogumAy", "DogumGun", "DogumYil", "KimlikNo"]
}
},
"required": ["BilesikKutukSorgulaKimlikNoSorguKriteri"]
}
},
"required": ["kriterListesi"]
}
},
"required": ["Sorgula"]
}
Yukarıdaki Json Schema Validation içeriği aşağıdaki görselde "Schema" alanına eklenir ve kaydedilir.
Test konsolundan istek attığımızda, KimlikNo 12 karakter olarak girildi ve validasyon işlemi yapıldı. Yalnızca 11 karakter uzunluğunda olabilir şeklinde bir uyarı aldık.