Validator

Conheça o componente e saiba como utilizá-lo.

Micaella Mazoni avatar
Escrito por Micaella Mazoni
Atualizado há mais de uma semana


O Validator tem a função de analisar um JSON de entrada e compará-lo ao schema fornecido, para que seja criada uma validação dentro de seu pipeline e interrompa o fluxo se a estrutura não estiver de acordo com o declarado.

JSON Schema é um vocabulário bastante difundido no mercado, que permite validar documentos JSON. Para saber mais sobre esse vocabulário, clique aqui.

Dê uma olhada nos parâmetro de configuração do Validator:

  • JSON Schema: definição JSON Schema que valida o JSON

Fluxo de mensagens

Entrada

O componente aceita mensagens de entrada do tipo JSON para realizar a validação.

{
"data": [
{
"product": "Samsung 4k Q60T 55",
"price": 3278.99
},
{
"product": "Samsung galaxy S20 128GB",
"price": 3698.99
}
]
}

Saída

O componente não altera nenhuma informação da mensagem de entrada quando o JSON Validador estiver de acordo com JSON Schema. Portanto, a mensagem é retornada para o componente seguinte ou é utilizada como resposta final se esse componente for o último passo do pipeline.

{
"data": [
{
"product": "Samsung 4k Q60T 55",
"price": 3278.99
},
{
"product": "Samsung galaxy S20 128GB",
"price": 3698.99
}
]
}

Validator em Ação

Veja abaixo como o componente se comporta em determinada situação e a sua respectiva configuração.

  • Informando um schema e enviando um JSON que não atende aos requisitos

Configure o componente com o seguinte schema:

{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"name": {
"type": "string"
},
"price": {
"type": "number"
}
},
"required": [
"name",
"price"
]
}

Depois, envie o seguinte JSON para o componente:

Entrada

{
"name": "Samsung galaxy S20 128GB",
"price": 3698.99
}

Saída

{
"timestamp": 1614186691087,
"error": "Failed to validate message. #Validation: error: object has missing required properties ([\"product\"])\n level: \"error\"\n schema: {\"loadingURI\":\"#\",\"pointer\":\"\"}\n instance: {\"pointer\":\"\"}\n domain: \"validation\"\n keyword: \"required\"\n required: [\"price\",\"product\"]\n missing: [\"product\"]\n",
"code": 400
}

  • Informando um schema e enviando um JSON que atende aos requisitos

Configure o componente com o seguinte schema:

{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"properties": {
"data": {
"type": "array",
"items": [
{
"type": "object",
"properties": {
"product": {
"type": "string"
},
"price": {
"type": "number"
}
},
"required": [
"product",
"price"
]
},
{
"type": "object",
"properties": {
"product": {
"type": "string"
},
"price": {
"type": "number"
}
},
"required": [
"product",
"price"
]
}
]
}
},
"required": [
"data"
]
}

Depois, envie o seguinte JSON para o componente:

Entrada

{
"product": "Samsung galaxy S20 128GB",
"price": 3698.99
}

Saída

{
"product": "Samsung galaxy S20 128GB",
"price": 3698.99
}
Respondeu à sua pergunta?