Skip to content

[Feature] Validador de JSON Schema #7

@JeanCarlos88

Description

@JeanCarlos88

[Feature] Validador de JSON Schema

Status: 🆕 Nova
Prioridade: 🟡 Alta
Labels: enhancement, new-tool, validation

Descrição

Criar ferramenta para validar documentos JSON contra schemas JSON Schema (draft-07, 2019-09, 2020-12), com mensagens de erro detalhadas e exemplos.

Objetivo

Permitir validação de contratos de API, configurações e dados estruturados contra schemas formais, essencial para testes de contrato e validação de payloads.

Tarefas

  • Criar nova página/rota /validador-schema
  • Implementar interface com dois editores (schema + JSON)
  • Integrar biblioteca Ajv (Another JSON Schema Validator)
  • Adicionar suporte para JSON Schema draft-07 e 2020-12
  • Exibir erros de validação de forma clara e organizada
  • Adicionar exemplos de schemas comuns (user, product, order)
  • Implementar syntax highlighting nos editores
  • Adicionar validação de sintaxe antes de validar schema
  • Mostrar caminho exato do erro (JSON path)
  • Adicionar opção de carregar schema de URL
  • Criar botão para gerar JSON de exemplo a partir do schema

Critérios de aceitação

  • Deve suportar JSON Schema draft-07 e versões mais recentes
  • Erros devem mostrar: caminho, mensagem, valor esperado
  • Interface deve ter syntax highlighting
  • Deve validar sintaxe JSON antes de validar contra schema
  • Exemplos devem cobrir casos comuns (strings, numbers, arrays, objects)
  • Performance adequada para schemas complexos

Recursos

  • Ajv (JSON Schema validator)
  • Monaco Editor ou CodeMirror
  • json-schema-faker para gerar exemplos

Observações

Considerar adicionar visualização em árvore do schema para facilitar compreensão.

Arquivos Afetados

  • src/pages/JsonSchemaValidator.jsx (novo)
  • src/services/schemaValidator.js (novo)
  • src/components/SchemaValidator/SchemaEditor.jsx (novo)
  • src/App.jsx (adicionar rota)
  • src/components/Layout/Sidebar.jsx (adicionar link)
  • package.json (adicionar ajv)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions