Montando uma API com Fastify e TypeScript
Introdução
O Fastify é um framework para Node.js focado em performance, baixo consumo de recursos e excelente experiência para desenvolvedores. Sua arquitetura baseada em plugins facilita a criação de aplicações escaláveis e organizadas. O projeto possui suporte nativo ao TypeScript e utiliza o logger Pino por padrão.
Neste tutorial construiremos uma API simples utilizando TypeScript e Fastify, preparando uma base sólida para aplicações REST modernas.
Criando o projeto
Crie uma pasta para o projeto e inicialize o Node.js:
npm init -yEsse comando gera o arquivo package.json, responsável pelo gerenciamento das dependências e scripts da aplicação.
Instalando o TypeScript
Instale o TypeScript como dependência de desenvolvimento:
npm i typescript -DO TypeScript adiciona tipagem estática ao JavaScript, aumentando a produtividade e reduzindo erros durante o desenvolvimento.
Instalando o TSX
Para executar arquivos TypeScript sem precisar compilá-los manualmente:
npm i tsx -DO TSX oferece recarregamento automático e simplifica o fluxo de desenvolvimento.
Instalando o Fastify
Agora instale o framework principal:
npm i fastifyO Fastify é reconhecido por sua alta performance, arquitetura baseada em plugins e excelente integração com TypeScript.
Habilitando CORS
Para permitir requisições de aplicações frontend:
npm i @fastify/corsO plugin de CORS permite controlar quais origens podem acessar sua API.
Configurando o TypeScript
Inicialize o arquivo de configuração:
npx tsc --initDepois altere o tsconfig.json:
{
"target": "ES2022"
}Utilizar versões mais recentes do JavaScript garante acesso a recursos modernos da linguagem.
Criando o script de desenvolvimento
No arquivo package.json, adicione:
{
"scripts": {
"dev": "tsx watch src/server.ts"
}
}Esse script ficará observando alterações no código e reiniciará automaticamente o servidor.
Estrutura do projeto
src/
└── server.tsCrie o arquivo:
mkdir src
touch src/server.tsCriando o servidor
No arquivo src/server.ts:
import Fastify from 'fastify';
import cors from '@fastify/cors';
async function main() {
const server = Fastify({
logger: true,
});
await server.register(cors, {
origin: true,
});
server.get('/', async () => {
return {
hello: 'world',
};
});
await server.listen({
port: 3000,
});
}
main();O que esse código faz?
- Cria uma instância do Fastify.
- Habilita logs automáticos.
- Registra o plugin de CORS.
- Cria uma rota GET.
- Inicializa o servidor na porta 3000.
Executando a aplicação
Inicie o servidor:
npm run devVocê verá algo semelhante a:
Server listening at http://127.0.0.1:3000Testando a API
Abra:
http://localhost:3000Resposta:
{
"hello": "world"
}Próximos passos
Agora que a API está funcionando, você pode evoluir o projeto adicionando:
- Prisma ORM
- PostgreSQL
- Validação com Zod
- Swagger/OpenAPI
- Autenticação JWT
- Testes automatizados
Esses recursos transformam uma API simples em uma aplicação pronta para produção.
Conclusão
O Fastify é uma excelente alternativa para projetos Node.js que exigem alta performance, organização e escalabilidade. Com poucas dependências já é possível construir APIs modernas, seguras e preparadas para crescer conforme a necessidade do projeto.