# Validator V2

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](https://json-schema.org/).

## Parâmetros

Dê uma olhada nas opções de configuração do componente. Parâmetros suportados por [expressões Double Braces](/documentation/connectors-and-triggers/pt-br/double-braces/overview.md) estão marcados com `(DB)`.

<table data-full-width="true"><thead><tr><th>Parâmetro</th><th>Descrição</th><th>Valor padrão</th><th>Tipo de dado</th></tr></thead><tbody><tr><td><strong>Schema Draft version</strong></td><td>Versão do <em>Schema Draft</em>. Versões suportadas: v4, v6, v7, v2019-09 e v2020-12.</td><td>v4</td><td><em>String</em></td></tr><tr><td><strong>Detect Draft version</strong></td><td>Se esta opção estiver ativada, a versão do <em>Schema Draft</em> será baseada na versão inserida no parâmetro <strong>JSON Schema.</strong></td><td><em>False</em></td><td>Booleano</td></tr><tr><td><strong>JSON Payload</strong> <code>(DB)</code></td><td>Conteúdo JSON a ser validado. </td><td>N/A</td><td><em>String</em></td></tr><tr><td><strong>JSON Schema</strong> <code>(DB)</code></td><td>JSON Schema que será usado como base para a validação do conteúdo JSON. </td><td>N/A</td><td><em>String</em></td></tr><tr><td><strong>Simplify validation results</strong></td><td>Se esta opção estiver ativada, os erros de validação serão exibidos de forma simplificada; caso contrário, serão exibidos de forma detalhada.</td><td><em>False</em></td><td>Booleano</td></tr><tr><td><strong>Fail on Error</strong></td><td>Se a opção estiver ativada, a execução do <em>pipeline</em> com erro será interrompida; do contrário, a execução do <em>pipeline</em> continua, mas o resultado vai mostrar um valor falso para a propriedade "<em>success</em>".</td><td><em>False</em></td><td>Booleano</td></tr></tbody></table>

## 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:<br>

```
{
    "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 Erro*r) é retornado para todo erro que occorer quando o componente for executado:

{% code overflow="wrap" %}

```
{
  "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
}

```

{% endcode %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.digibee.com/documentation/connectors-and-triggers/pt-br/connectors/tools/validator-v2.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
