Skip to main content

JSON Validator

1. Visão Geral

O componente JSON Validator (json-validator) valida se o corpo de uma mensagem segue as regras de um JSON Schema definido. Serve para garantir que os dados recebidos em um fluxo tenham o formato esperado antes de seguir para os próximos passos.

Use quando precisar validar a estrutura de um JSON recebido (campos obrigatórios, tipos, formatos) antes de processá-lo. Não use para validações de regra de negócio complexas (isso é papel de um Choice ou de lógica customizada) — o JSON Validator só verifica estrutura/formato.

2. Pré-requisitos

Não há credenciais ou acessos externos — a validação roda localmente na engine de fluxo.

3. Autenticação e Conexão

Não aplicável.

4. Configuração / Operações Suportadas

O componente tem uma única operação: validar o corpo da mensagem contra um schema.

CampoObrigatórioTipoDescriçãoExemplo
schemaSimTexto (JSON Schema)O schema usado para validar o corpo da mensagem.Um JSON Schema definindo campos obrigatórios
schemaVersionNãoTexto: 4, 6, 7, 2019-09 ou 2020-12Versão do JSON Schema usada para interpretar o schema. Valor padrão: 7. Valores não reconhecidos caem no padrão."2020-12"
failOnErrorNãoTexto ("true"/"false")Se true (padrão), uma validação que falha interrompe o fluxo com erro. Se false, o fluxo continua, mas com success: false e os detalhes do erro no corpo."false"

O corpo da mensagem de entrada precisa ser um JSON válido — se não for, a validação falha antes mesmo de comparar com o schema.

5. Exemplos Práticos

Exemplo simples: um fluxo recebe um cadastro de cliente e valida se os campos obrigatórios estão presentes, interrompendo o fluxo se algo estiver errado (comportamento padrão, failOnError ligado).

Entrada:

{
"nome": "Maria Silva",
"email": "maria@exemplo.com"
}

Configuração do componente:

{
"componentName": "json-validator",
"configurations": {
"schema": "{\"type\":\"object\",\"required\":[\"nome\",\"email\",\"idade\"],\"properties\":{\"idade\":{\"type\":\"number\"}}}"
}
}

Como o campo idade (obrigatório no schema) não veio na entrada, a validação falha e, como failOnError está no padrão (true), o fluxo é interrompido com um erro contendo os detalhes.

Exemplo avançado: o mesmo cenário, mas sem interromper o fluxo — o resultado da validação é usado para decidir o próximo passo (por exemplo, com um Choice logo em seguida).

Configuração do componente:

{
"componentName": "json-validator",
"configurations": {
"schema": "{\"type\":\"object\",\"required\":[\"nome\",\"email\",\"idade\"],\"properties\":{\"idade\":{\"type\":\"number\"}}}",
"failOnError": "false"
}
}

Resposta (quando a validação falha, mas o fluxo continua):

{
"errors": [
{ "message": "$.idade: is missing but it is required" }
]
}

Resposta (quando a validação passa):

{
"nome": "Maria Silva",
"email": "maria@exemplo.com",
"idade": 34
}

6. Erros Comuns e Troubleshooting

Erro / SintomaCausa provávelComo resolver
"Configuration 'schema' is required for json-validator component"O campo schema não foi preenchido.Preencher schema com um JSON Schema válido.
"Failed to initialize JSON Schema: ..."O texto informado em schema não é um JSON Schema válido.Revisar a sintaxe do schema.
"Error validating JSON: ..."O corpo da mensagem recebida não é um JSON válido.Garantir que a mensagem de entrada seja um JSON bem formado.
Mensagens como "$.campo: is missing but it is required"O corpo não atende a uma regra específica do schema (campo faltando, tipo incorreto, etc).Ajustar os dados de entrada ou revisar as regras do schema.