# JSON Schema

A validação a partir de um **JSON Schema** serve para garantir que um arquivo **JSON** esteja “no formato correto”.  
  
É um processo que confere se o conteúdo do arquivo segue um modelo previamente definido, como um checklist que verifica se todos os campos obrigatórios estão presentes, se os tipos de dados estão corretos (por exemplo, texto, número, verdadeiro/falso) e se os valores respeitam determinadas regras. Isso ajuda a evitar erros antes que as informações sejam enviadas ou processadas.  
  
O envio das informações **Sagres Captura 2.0**, seguirá exatamente esse formato de validação baseado em **JSON Schema**.

---

##### Validação com JSON Schema

O schema abaixo define que o objeto JSON deve conter:

🔹 Um campo `nome` do tipo **texto** (`string`);

🔹 Um campo `idade` do tipo **número inteiro** (`integer`) com valor mínimo igual a `0`;

🔹 Um campo opcional `ativo` do tipo **booleano** (`true` ou `false`).

```
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "type": "object",
  "properties": {
    "nome": { "type": "string" },
    "idade": { "type": "integer", "minimum": 0 },
    "ativo": { "type": "boolean" }
  },
  "required": ["nome", "idade"]
}
```

##### Processo

Durante a validação, o **JSON** enviado é comparado com o **Schema**  
  
🔹Se todos os campos estiverem corretos e seguirem as regras, o **JSON** é considerado **válido**

🔹Caso contrário, é retornado **mensagens de erro** indicando quais campos estão incorretos ou ausentes

###### ✅ Exemplo Válido

```
{
  "nome": "Maria",
  "idade": 25,
  "ativo": true
}
```

###### ❌ Exemplo Inválido

```
{
  "nome": 123,
  "idade": -5
}
```

### Ferramenta Online  


No site [**JSON Schema Validator**](https://www.jsonschemavalidator.net/) permite testar facilmente os **schemas** e os arquivos **JSON**, verificando se o conteúdo está de acordo com as regras definidas no **schema**.

#### [Ir para Schemas das Entidades](https://docs.tcepb.tc.br/books/schemas)