Валидация сообщений по схеме#
Поддерживается валидация следующих типов сообщений: JSON, XML и AVRO.
Шаг предназначен для проверки входящих/исходящих сообщений на соответствие указанных схем, либо форматов.
JSON#
Документация#
Пример#
Пример JSON-валидации входящего и исходящего сообщения (in=out)
{
flow: {
name: "JobName"
source: ${source}
}
source: {
name: "testInput"
type: "test"
topic: "input"
config: ${test} # описан в предыдущем блоке test
destination: ${transformStep}
}
validator: {
name: "Json validator"
type: "dsl"
dsl: {
path: "AsIs.tr"
}
format: {
input: {
type: "json",
schema: [
{
source: "file"
path: "testSchema/json/first-schema.json"
},
//...
]
}
output: {
type: "json",
schema: [
{
source: "file"
path: "testSchema/json/first-schema.json"
},
//...
]
}
}
destination: ${destination}
destination: {
name: "output"
type: "destination"
topic: "output"
config: ${defaults.kafka}
}
}
}
XSD#
Документация#
Пример#
Пример XSD-валидации входящего и исходящего сообщения (in=out)
validator: {
name: "XML validator"
type: "dsl"
dsl: {
path: "AsIs.tr"
}
format: {
input: {
type: "xml",
schema: [
{
source: "file"
path: "testSchema/xml/main.xsd"
},
//...
]
}
output: {
type: "xml",
schema: [
{
source: "file"
path: "testSchema/xml/main.xsd"
},
//...
]
}
}
destination: ${output}
}
AVRO#
Поддерживается работа с многофайловыми схемами валидации.
Документация#
Пример:
Пример AVRO-валидации входящего и исходящего сообщения (in=out):
transformStep: {
name: "transformation"
type: "dsl"
format: {
input: json
output: {
type: "avro"
schema: [{
path: "avro/ValidTest.avsc"
}]
}
}
dsl: {
path: "AsIs.tr"
}
destination: ${destination}
}