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
- LEFT JOIN no MongoDB, não é magia… É Aggregation Framework!!!
- Biblioteca JQUERY – Instalação
- C# – Usando a biblioteca Math.NET (.NET Core)
- Como fazer HTTP middleware em Go tanto usando Negroni, quanto a biblioteca padrão