Muito massa fazer esses exercícios de projetinhos completos, o seu ficou muito bem feito e organizado, parabéns! Como sugestão, eu tenho 2 pontos que podem agregar um bocadinho:
-
Error Handler: Em quase todas as rotas você repete os mesmos tratamentos de erro, esse caminho foi proposital? O Fastify tem uma forma de tratar os erros de forma global, de uma maneira muito prática. Segue um link da documentação
-
Fastify + Swagger: Vi que você já criou uma documentação com o Swagger, mas o que acha da idéia da documentação estar totalmente integrada ao código? O Fastify tem um plugin oficial pra te ajudar nessa questão, o @fastify/swagger, com ele você consegue criar as documentações diretamente nas rotas, facilitando muito a vida. Ainda é possível misturar tudo isso com o Zod e deixar as coisas ainda mais fáceis, se liga só nessa lib.
Bora nos conectar! Também trabalho com Node.JS e ultimamente venho tentado me desafiar. Fico a disposição para colaborar contigo. Deixarei aqui minhas redes:
Muito obrigado pelo feedback, isso ajuda muito na minha evolução. A questão do tratamento de erro não foi proposital, foi falta de conhecimento msm 😅. Gostei muito das suas dicas vou estudar sobre
Concordo muito com você Jonatan, estou implementando também na minha API em Node, não estou usando Fastify mas o Swagger sim, e fazer a documentação na mão é chatinho mas muito necessário, estou focando em melhorar a documentação.
Outro ponto seria de Reset da Senha, implementei recentemente essa funcionalidade e fazemos um token temporário para então validar esse token e deixar o usuário refazer a senha, também conta com o JWT, acho muito show.