Skip to content

Validação de Dados no Backend

A validação de dados no Backend é a única defesa real contra dados malformados, maliciosos ou inconsistentes que tentam entrar no seu sistema.

Fluxo de Validação

  1. Frontend: Faz a validação básica (formatos, campos obrigatórios) para feedback instantâneo.
  2. Backend: Recebe a requisição e valida novamente todos os campos contra o esquema de dados e regras de negócio.
  3. Persistência: O banco de dados pode ter restrições adicionais (unique, not null).

Como fazer vs Como não fazer

✅ Como fazer

  • Utilize bibliotecas de validação de esquema (como Zod, Joi ou Yup) no Backend para garantir que o payload da requisição segue o formato esperado.
  • Retorne mensagens de erro claras e estruturadas da API para que o Frontend possa mapeá-las de volta para os campos do formulário.
  • Valide não apenas o formato, mas a autoridade do usuário sobre aquele dado (ex: o usuário X tem permissão para editar o paciente Y?).

❌ Como não fazer

  • Não assuma que os dados estão limpos apenas porque "vêm da nossa própria aplicação".
  • Não use validações de "caixa preta" que retornam apenas um erro genérico 500 sem explicar o que falhou (para erros de validação, use sempre 400 Bad Request ou 422 Unprocessable Entity).
  • Não confie em validações de tipos do TypeScript em tempo de execução; o TS desaparece após o build, use validações reais de runtime.