Validator V2

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

O Validator V2 (JSON Schema) valida um conteúdo JSON com base em um JSON Schema.

JSON Schema é uma linguagem padrão de mercado usada para anotar e validar documentos JSON, que funciona como um “contrato” a ser seguido pelo componente. Para saber mais, visite a documentação oficial do JSON Schema.

Parâmetros

Dê uma olhada nas opções de configuração do componente. Parâmetros suportados por expressões Double Braces estão marcados com (DB).

Fluxo de mensagens

Saída

Se o Validator V2 validar com sucesso o conteúdo JSON, terá como saída o JSON configurado no parâmetro JSON Payload.

Já em casos de erro, o componente terá como saída um conteúdo JSON com a seguinte estrutura por padrão:

{
    "success": false,
    "validation": [
        {
            "type": "type",
            "code": "1029",
            "path": "$.code",
            "schemaPath": "#/properties/code/type",
            "arguments": [
                "string",
                "integer"
            ],
            "details": null,
            "message": "$.code: string found, integer expected"
        },
        {
            "type": "required",
            "code": "1028",
            "path": "$",
            "schemaPath": "#/required",
            "arguments": [
                "field"
            ],
            "details": null,
            "message": "$.field: is missing but it is required"
        }
    ]
}

O array "validation" contém um objeto JSON para cada validação realizada. Cada objeto JSON tem as seguintes propriedades:

  • type: o tipo de validação aplicada.

  • code: código interno da validação.

  • path: caminho no qual a propriedade validada está configurada no conteúdo JSON.

  • schemaPath: caminho no qual a propriedade validada está configurada no JSON Schema.

  • arguments: dados da propriedade analisada durante a validação.

  • details: detalhes adicionais da validação.

  • message: mensagem referente ao erro encontrado.

Se a opção Simplify validation results estiver ativada, o array "validation" irá conter apenas mensagens de erro, como esta:

{
    "success": false,
    "validation": [
        "$.code: string found, integer expected",
        "$.field: is missing but it is required"
    ]
}

Se o parâmetro Fail on Error estiver ativado, um erro de status http 500 (Internal Server Error) é retornado para todo erro que occorer quando o componente for executado:

{
  "timestamp": 1703004877585,
  "error": "com.digibee.pipelineengine.elements.connector.ValidatorConnectorV2$PayloadNotMatchSchemaException: [{\"type\":\"required\",\"code\":\"1028\",\"path\":\"$\",\"schemaPath\":\"#/required\",\"arguments\":[\"nome\"],\"details\":null,\"message\":\"$.nome: is missing but it is required\"}]",
  "code": 500
}

Atualizado