Skip to content

Adicionar Armazenamento de Schema e Validação no Servidor HTTP #34

@gjovs

Description

@gjovs

Descrição

Precisamos aprimorar o processo de validação de requisições do nosso servidor HTTP. O objetivo é realizar algumas modificações essenciais para melhorar a estrutura e funcionalidade da validação de schemas, além de facilitar a documentação das rotas. A seguir, detalho as mudanças necessárias:

Primeiramente, é necessário modificar o adaptador de validação de requisições para armazenar os schemas de validação em um mapa dentro do servidor HTTP. Esse mapa deve ser capaz de guardar e fornecer os schemas de validação conforme necessário durante o processo de tratamento das requisições. A implementação dessa funcionalidade garantirá que todos os schemas de validação sejam centralizados e facilmente acessíveis, para poderem ser manipulados posteriormente.

Em seguida, devemos adaptar a função original de validação para operar a partir de sua nova localização no servidor HTTP. Isso inclui mover a função para a nova estrutura e atualizar todas as referências e chamadas para que apontem corretamente para a nova localização.

Além disso, é fundamental fazer o bind dos schemas de validação na classe Router. Isso significa que cada rota no servidor deve estar associada ao seu respectivo schema de validação se a mesma existir. A implementação dessa lógica garantirá que, durante o tratamento de cada requisição, o schema correto seja utilizado para validar os dados recebidos, mantendo a integridade e segurança da aplicação e a possibilidade da criação de uma documentação automatizada.

Outro ponto importante é a instalação e utilização do Zod para reforçar a tipagem dos schemas de validação. O Zod é uma biblioteca poderosa que facilita a definição e validação de tipos em JavaScript/TypeScript. A refatoração do código para utilizar o Zod permitirá que os schemas sejam mais robustos e que a validação seja mais precisa. Além disso, o uso do Zod facilitará a manutenção e a escalabilidade do código devido sua alta adesão ao Fastify (nossa atual biblioteca HTTP).

Por fim, precisamos possibilitar a documentação das rotas utilizando Swagger, aproveitando os schemas definidos pelo Zod. O Swagger, utilizando o @fastify-swagger

Critérios de Aceitação

  • Os schemas de validação devem ser armazenados em um mapa dentro do servidor HTTP.
  • A função original de validação deve ser adaptada e funcional em sua nova localização.
  • Os schemas de validação devem ser associados corretamente às rotas na classe Router.
  • O Zod deve ser instalado e utilizado para reforçar a tipagem dos schemas.
  • A documentação das rotas via Swagger deve incluir detalhes dos schemas definidos pelo Zod.
  • Escrever testes para cobrir a nova funcionalidade e garantir que os testes existentes não sejam quebrados.

Referências

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions