Voltar para o Blog Node.js 8 min

Criando uma API REST com Node.js e Fastify

Aprenda a criar uma API REST performática usando Fastify, uma alternativa mais leve e rápida ao Express.js. Veja como configurar rotas, validar dados e muito mais!

Entendendo o Fastify

O Fastify é um framework web moderno para Node.js que se destaca por três características principais:

  • Performance: Mais rápido que Express e outros frameworks tradicionais
  • Tipagem: Suporte nativo ao TypeScript para desenvolvimento mais seguro
  • Validação: Sistema robusto de validação usando JSON Schema

Implementação Passo a Passo

1. Configuração Inicial

Primeiro, vamos criar um novo projeto e instalar as dependências necessárias:

Bash
mkdir api-fastify
cd api-fastify
npm init -y
npm install fastify

Para projetos TypeScript, adicione estas dependências:

Bash
npm install typescript @types/node
npm install -D ts-node
npx tsc --init

2. Estrutura Básica

Crie um arquivo server.ts com a estrutura básica do servidor:

TypeScript
import Fastify from 'fastify'

// Inicializa o Fastify com logging
const server = Fastify({
    logger: true
})

// Rota básica
server.get('/', async (request, reply) => {
    return { hello: 'world' }
})

// Inicia o servidor
async function start() {
    try {
        await server.listen({ port: 3000 })
    } catch (err) {
        server.log.error(err)
        process.exit(1)
    }
}

start()

3. Implementando Validação

O Fastify possui um sistema poderoso de validação usando JSON Schema. Veja um exemplo prático:

TypeScript
// Define o schema para validação
const userSchema = {
    body: {
        type: 'object',
        required: ['name', 'email'],
        properties: {
            name: { type: 'string', minLength: 3 },
            email: { type: 'string', format: 'email' }
        }
    }
}

// Rota com validação
server.post('/user', {
    schema: userSchema
}, async (request, reply) => {
    const { name, email } = request.body
    return { 
        success: true,
        user: { name, email }
    }
})

Principais Benefícios

Performance

O Fastify foi projetado para ser extremamente rápido:

  • Baixo overhead de memória
  • Processamento de requisições otimizado
  • Sistema de serialização eficiente

Segurança

O framework oferece diversos recursos de segurança:

  • Validação automática de entrada
  • Sanitização de dados
  • Proteção contra ataques comuns

Dicas e Boas Práticas

  • Sempre defina schemas de validação para suas rotas
  • Utilize TypeScript para maior segurança no desenvolvimento
  • Organize seu código em plugins para melhor manutenibilidade
  • Implemente logging adequado para monitoramento

Recursos Adicionais

Com este guia, você já tem o necessário para começar a desenvolver APIs robustas com Fastify. Lembre-se de consultar a documentação oficial para recursos mais avançados e melhores práticas!