Back-End

10 mai, 2024

Validação de dados no back-end com a biblioteca Joi

Publicidade

Validar para não dar ruim

Para garantir o funcionamento correto das nossas APIs e evitar problemas é super importante sempre validar a entrada dos nossos usuários. Pensando em uma API Rest tradicional, é possível fazer essa validação de diferentes formas, como por exemplo, usando condicionais (if)! Como no exemplo abaixo, onde temos uma simples API construída com Node e Express e em uma determinada rota queremos validar se o usuário enviou todos os dados corretamente:

Veja que nesse caso estamos esperando que os dados enviados sejam: username, email, year e password. Para cada um deles, temos algumas validações:

  • email: usamos um Regex para ver se o formato está correto;
  • year: usamos uma condição para ver o ano está acima de 1900;
  • password: verificamos se tem pelo menos 6 caracteres.

Biblioteca Joi

Essa abordagem funciona? Sim, funciona. Mas a verdade é que conseguimos fazer melhor do que isso. Para refatorar este código, usaremos a biblioteca Joi. Para instalar ela basta executar o comando:

Com a biblioteca instalada, precisamos importar ela para dentro do projeto e criar um schema. Um schema será um objeto com a estrutura que esperamos receber no corpo da requisição. Para nosso exemplo, ficaria desta forma:

Usamos o joi.object() para definir o schema e então usamos o string(), email(), min(), max(), e assim por diante para fazer as validações necessárias. Agora, ao invés de ficar encadeando ifs e else, simplesmente usamos esse objeto de referência para validar a informação que o usuário nos enviou:

Bem melhor, não acham? 😉

Versão em vídeo sobre a Biblioteca Joi

Validações mais felizes na sua API com a biblioteca Joi

Referências

 

LEIA TAMBÉM