Como validar múltiplos arquivos JSON com a CLI do AJV
Aprenda a garantir a integridade dos seus dados validando arquivos de configuração contra schemas JSON de forma automática e eficiente utilizando o AJV.
Resumo
- A validação de arquivos JSON antes da ingestão evita erros críticos em aplicações de backend.
- O AJV é a ferramenta mais rápida e utilizada para verificar se dados seguem uma estrutura pré-definida.
- A interface de linha de comando do AJV permite processar centenas de arquivos em poucos segundos.
- O uso de schemas rigorosos atua como um contrato de dados entre diferentes serviços.
- Automatizar essa tarefa em pipelines de CI reduz a necessidade de intervenção manual em ambientes de produção.
Por que validar seus arquivos JSON?
Quando gerenciamos sistemas de backend, a ingestão de dados malformados é uma das fontes mais comuns de incidentes. Se um arquivo de configuração enviado para o servidor não segue a estrutura esperada, sua aplicação pode travar silenciosamente ou, pior, processar dados corrompidos. O formato JSON (JavaScript Object Notation), embora flexível, não possui checagem de tipo nativa, o que nos obriga a utilizar ferramentas de validação.
Validar dados na origem é o que chamamos de 'defensive programming'. Antes mesmo de tocar no banco de dados, confirmamos que todos os campos obrigatórios estão presentes e que os tipos de dados estão corretos. Assim como liberamos portas bloqueadas com fuser para evitar conflitos, precisamos garantir que o fluxo de dados seja íntegro para manter o sistema operacional estável.
O papel do AJV na automação
O AJV (Another JSON Schema Validator) é amplamente reconhecido como a biblioteca de validação mais eficiente para o ecossistema Node.js. Ele funciona comparando seus arquivos JSON contra um 'JSON Schema', que nada mais é do que um arquivo de regras que define o que é um dado válido (por exemplo, qual campo é obrigatório ou qual o formato de uma string).
A grande vantagem do AJV é a sua interface de linha de comando (CLI). Em vez de escrever um script complexo em cada projeto para ler diretórios e validar arquivos, o pacote ajv-cli resolve isso com um único comando. Isso é perfeito para ser incluído em etapas de pré-commit ou em pipelines de CI/CD, garantindo que nenhum arquivo inválido chegue ao seu cluster.
Como instalar e configurar a validação
A instalação é direta através do npm. Recomendo sempre instalar globalmente para facilitar o acesso em qualquer diretório de projeto ou como dependência de desenvolvimento no seu package.json. Para quem trabalha com manipulação de dados, essa ferramenta é tão útil quanto saber converter JSON em CSV no terminal para análises rápidas.
- Instale o AJV globalmente:
npm install -g ajv-cli ajv-formats. - Crie seu arquivo de schema (por exemplo,
schema.json) definindo as regras de campos. - Execute a validação em massa apontando o schema para a pasta de arquivos:
ajv validate -s schema.json -d 'config/*.json'.
Dicas práticas para o dia a dia
Ao trabalhar com validação em massa, um desafio comum é lidar com formatos específicos como datas ou URIs. O pacote ajv-formats é um complemento essencial que ensina ao AJV como validar esses formatos padrão da internet. Sem ele, o validador tratará uma data como uma string comum, sem verificar se o formato está correto.
Outra prática importante é organizar seus schemas por versões. Se seu sistema evolui, seus schemas também devem. Manter um versionamento semântico permite que você valide arquivos legados com schemas antigos e arquivos novos com regras mais rígidas, evitando que uma atualização quebre toda a sua automação de ingestão de dados em produção.
Conclusão: integridade como padrão
Adotar a validação automática via CLI do AJV não é apenas um luxo de engenharia, mas uma necessidade para sistemas que exigem alta disponibilidade. Ao tratar cada arquivo de configuração como um contrato, eliminamos a ambiguidade e garantimos que o backend processe apenas o que ele consegue interpretar com segurança.
A automação é o caminho para reduzir o erro humano. Da próxima vez que você precisar validar uma carga de configurações, não perca tempo escrevendo scripts customizados; utilize as ferramentas de linha de comando consolidadas e foque na lógica do seu negócio, não na verificação de chaves JSON.