JSON Schema Validator
Understand JSON Schema Validator
Este validador confere um documento JSON contra um JSON Schema e lista cada ponto em que os dados não correspondem, com o caminho até o valor problemático.
How it works
Ele percorre os dados e o schema juntos, aplicando as restrições de cada palavra-chave em cada nível: type (incluindo integer), enum, required, properties, additionalProperties, pattern, minLength e maxLength, minimum e maximum, items, minItems e maxItems. Os erros carregam um caminho como $.user.email, para que você encontre o valor dentro de um documento grande. Quando um valor tem o tipo errado, o percurso para ali, porque toda verificação seguinte sobre ele seria ruído.
When to use it
- Conferir se a resposta de uma API ainda corresponde ao formato que o seu cliente espera.
- Testar um schema que você está escrevendo contra uma amostra que deve passar e outra que deve falhar.
- Descobrir qual campo de um payload grande um serviço está rejeitando.
- Confirmar que um arquivo de configuração corresponde ao schema publicado pela própria ferramenta.
Watch out for
- O JSON Schema é permissivo por padrão. Uma propriedade não listada em properties é permitida a menos que additionalProperties seja false, e uma propriedade listada é opcional a menos que seja nomeada em required — um schema que parece rigoroso em geral não é.
- Isto implementa um subconjunto do draft-07. $ref, allOf, anyOf, oneOf, not, const e format não são avaliados, então um schema que os usa recebe relatório sobre as partes verificáveis e silêncio sobre o resto.
- type: number aceita inteiros, e type: integer aceita tanto 1.0 quanto 1, porque o JSON tem um único tipo numérico e 1.0 é esse número.
- Um tipo incompatível suprime os demais erros daquele valor, então corrigir um erro pode revelar outros embaixo dele.
Not the right tool for: Schemas que se apoiam em $ref, nos combinadores ou em asserções de format. O Ajv é a implementação de referência e verifica o que isto não verifica.
Frequently Asked Questions
Quais palavras-chave de JSON Schema são suportadas?
Um subconjunto central do draft-07: type (incluindo integer e arrays de tipos), required, properties, additionalProperties, enum, pattern, minLength/maxLength, minimum/maximum, items, minItems/maxItems e schemas aninhados. Não implementados: format, const, $ref e os combinadores allOf/anyOf/oneOf/not. Para cobertura completa do draft-07, use o Ajv no seu próprio build.
Qual é a diferença entre JSON Schema draft-07 e 2020-12?
O draft-07 é a versão mais amplamente adotada (padrão em muitas ferramentas). O draft 2020-12 acrescenta $dynamicRef, unevaluatedProperties e um comportamento melhorado de $ref. Use o draft-07 a menos que a sua cadeia de ferramentas exija especificamente um draft mais novo.
Como validar a resposta de uma API contra um schema?
Cole a resposta da API no campo "Dados" e o componente de schema do seu OpenAPI/Swagger no campo "Schema". Isso é útil para garantir que as respostas da API correspondem ao formato documentado antes de escrever o código do cliente.
How to Use JSON Schema Validator
- Paste or type your input in the input area above.
- The tool processes your input automatically or click Run.
- Copy or download the result using the action buttons.
- Use Ctrl+Enter to run quickly from the keyboard.