Node.js & Arquitetura de APIs RESTful Profissionais
Do Módulo 0 ao Projeto Final: Fastify, TypeScript Estrito, PostgreSQL, Clean Architecture, Design RFC 7807, OWASP Security, Circuit Breaker, OpenAPI, Redis, Queues, OpenTelemetry, Docker e CI/CD.
Módulo 0 — Preparação do Ambiente
Node.js LTS, VS Code, REPL, npm, package.json, Módulos ES, Env e Git.
Módulo 1 — Fundamentos do Node.js
V8, Event Loop, I/O não-bloqueante, Buffers, Streams e FS.
1.1 Event Loop, Non-Blocking I/O & Streams
Node.js combina a engine V8 para execução JS com a biblioteca libuv para I/O assíncrono e thread pool do SO.
1.2 Projeto: Processador Assíncrono de Arquivos
Utilize fs.createReadStream e Transform Streams para processar arquivos gigabytes sem estourar a memória RAM.
Módulo 2 — HTTP e Fundamentos da Web
HTTP/HTTPS, Métodos, Headers, Status Codes, Content Negotiation, CORS e Cache.
2.1 Protocolo HTTP, Headers & Content Negotiation
Estrutura da requisição (verbo, URI, headers, body) e resposta (status code, headers, payload JSON).
2.2 Projeto: Servidor HTTP Nativo
Construa um servidor usando node:http tratando rotas por req.url e req.method com parse manual de JSON.
Módulo 3 — Fundamentos de APIs RESTful
REST vs RESTful, Recursos, URIs, Modelo Richardson, Verbos e Status Codes.
3.1 Níveis de Maturidade de Richardson & Semântica REST
Nível 0: URIs brutas (RPC). Nível 1: Recursos. Nível 2: Verbos HTTP adequados. Nível 3: HATEOAS.
3.2 Projeto: Contrato REST de Gerenciamento de Pedidos
Especifique os endpoints GET /api/v1/pedidos, GET /pedidos/42, POST, PATCH e DELETE com status 200, 201 e 204.
Módulo 4 — Construção de APIs com Fastify
Fastify, Rotas, Plugins, Hooks, Schemas JSON, Serialização e Erros Centralizados.
4.1 Arquitetura Fastify & Compilação de Schemas
Fastify utiliza schemas JSON para validar requisições e compilar serializadores de resposta ultra-rápidos.
4.2 Projeto: CRUD de Produtos em Memória
Implemente o CRUD de produtos separando rotas em plugins registrados via fastify.register().
Módulo 5 — TypeScript Aplicado ao Backend
TS estrito, Interfaces, Generics, Narrowing, DTOs e Tipos de Domínio sem any.
5.1 Type-Safety Severo no Backend
O compilador TS garante segurança em tempo de desenvolvimento. Dados externos de entrada exigem validação runtime (Zod/Ajv).
5.2 Projeto: Migrar CRUD para TypeScript Estrito
Defina interfaces de requisição e tipos de entidades dominiais eliminando qualquer ocorrência do tipo any.
Módulo 6 — Modelagem e PostgreSQL
Modelagem relacional, PK/FK, Constraints, Normalização, Índices, Migrations e Seeds.
6.1 Modelagem PostgreSQL & Índices B-Tree
Chaves estrangeiras garantem integridade referencial. Índices B-Tree aceleram buscas por colunas de filtros frequentes.
6.2 Projeto: Persistência de Clientes, Produtos e Pedidos
Crie migrações de esquema e scripts de população inicial para as tabelas relacionais de pedidos e itens.
Módulo 7 — Arquitetura em Camadas
Clean Architecture pragmática: presentation, application, domain e infrastructure.
7.1 Inversão de Dependências & Limites Arquiteturais
Separe casos de uso das bibliotecas externas. Proteger o código contra mudanças reais sem criar abstrações desnecessárias.
7.2 Projeto: Refatorar a API por Domínio (src/modules/orders)
Reestruture o código em pastas src/modules/orders/ (domain, application, infrastructure, presentation).
Módulo 8 — Design Profissional de APIs
Paginação Offset vs Cursor, Versionamento, Filtros, Erros RFC 7807 e Idempotency Keys.
8.1 RFC 7807 (Problem Details) & Paginação por Cursor
Adote a RFC 7807 para retornos de erro consistentes e substitua a paginação por offset por paginação por cursor em tabelas massivas.
8.2 Projeto: Estabelecer o Contrato Público da API
Exija a chave Idempotency-Key em operações POST críticas para evitar duplicação em caso de retentativas do cliente.
Módulo 9 — Validação e Regras de Negócio
Validação sintática vs semântica, DTOs, Zod Schemas, Invariantes e Mass Assignment.
9.1 Schemas Zod & Prevenção de Mass Assignment
Valide tipos e regras semânticas na borda da API usando Zod para impedir a injeção de propriedades não autorizadas no banco.
9.2 Projeto: Validação Completa da Criação de Pedidos
Garanta que a criação de pedidos valide o estoque disponível e a obrigatoriedade dos itens no banco antes de persisti-los.
Módulo 10 — Autenticação e Autorização
Passwords (Argon2/bcrypt), JWT, Access/Refresh Tokens, RBAC, ABAC e Resource Ownership.
10.1 JWT sem Mitos & Controle RBAC
Use access tokens curtos em memória e refresh tokens em cookies HttpOnly com rotação automática para prevenir sequestros de sessão.
10.2 Projeto: Auth e Permissões de Cliente, Operador e Admin
Implemente middlewares de autorização que garantem que clientes só alterem seus próprios pedidos (Resource Ownership).
Módulo 11 — Segurança de APIs (OWASP Top 10)
OWASP API Security Top 10, BOLA, Rate Limiting, CORS, Headers e Gestão de Segredos.
11.1 OWASP API Security & Prevenção de BOLA
BOLA é a vulnerabilidade #1 de APIs. Exige validar se o ID do objeto no banco pertence ao ID do usuário autenticado no token.
11.2 Projeto: Threat Model & Hardening da API
Configure headers de segurança (Helmet), limite de requisições por IP no Redis e sanitização de logs contra vazamento de senhas.
Módulo 12 — Tratamento de Erros e Confiabilidade
Error Handler Centralizado, Timeouts, Retry Backoff+Jitter, Circuit Breaker e Graceful Shutdown.
12.1 Circuit Breaker & Graceful Shutdown
Trate sinais do processo SO (SIGTERM) concluindo as conexões de banco e requisições ativas antes de derrubar o container Node.
12.2 Projeto: Tornar a API Resistente a Falhas Externas
Implemente Circuit Breaker para chamadas HTTP externas e exponha endpoints /health/live e /health/ready.
Módulo 13 — Testes Automatizados
Pirâmide de Testes, Unitários, Integração, Contrato, E2E, DB de testes e Mocks na borda.
13.1 Pirâmide de Testes Backend com Vitest
Utilize containers SQLite/Postgres de teste para rodar suítes de integração reais garantindo que rollback de transações funcione.
13.2 Projeto: Suíte Automatizada da API
Escreva suíte automatizada validando criação de pedidos, bloqueio de BOLA e tratamento de erro 400 com DTOs inválidos.
Módulo 14 — Documentação com OpenAPI
OpenAPI, Swagger UI, Schemas, Exemplos, Versões e Contrato como fonte da verdade.
14.1 Geração de OpenAPI via Fastify Schemas
Gere a especificação OpenAPI 3.0 automaticamente a partir dos schemas JSON registrados nas rotas do Fastify.
14.2 Projeto: Documentação Interativa Completa (Swagger UI)
Disponibilize a interface Swagger UI interativa com exemplos de requisição, autenticação Bearer JWT e respostas de erro.
Módulo 15 — Performance e Escalabilidade
Connection Pools, EXPLAIN SQL, Cache Redis, Streams, Backpressure e Load Testing.
15.1 Caching Redis & Connection Pool Tuning
Armazene payloads de leitura pesados no Redis e controle backpressure em streams para não sobrecarregar a memória RAM.
15.2 Projeto: Medir e Otimizar Endpoints Críticos (k6 / Autocannon)
Execute testes de carga com Autocannon reduzindo a latência p99 e aumentando o throughput de requisições por segundo.
Módulo 16 — Filas e Processamento Assíncrono
Message Brokers, BullMQ/Redis, Dead-Letter Queue, Outbox Pattern e Consistência Eventual.
16.1 BullMQ, Workers & Outbox Pattern
Delegue tarefas pesadas de email/PDF a workers assíncronos via Redis/BullMQ usando o Outbox Pattern para consistência transacional.
16.2 Projeto: Processamento Assíncrono de Notificações
Implemente fila de envio de mensagens com retentativas automáticas e Dead-Letter Queue (DLQ) para mensagens com falha permanente.
Módulo 17 — Observabilidade (OpenTelemetry)
Logs Estruturados, Correlation ID, Métricas, Traces, OpenTelemetry, SLI/SLO e Dashboards.
17.1 OpenTelemetry, Correlation IDs & Métricas RED
Pino logs estruturados em JSON com Correlation ID propagation para rastrear requisições através de múltiplos microserviços.
17.2 Projeto: Instrumentação Completa da API
Instrumente a aplicação Node.js com o SDK OpenTelemetry exportando traces de consultas SQL e chamadas HTTP externas.
Módulo 18 — Docker e Configuração (12-Factor App)
Dockerfile Multi-Stage, Usuário não-root, Docker Compose, Postgres, Redis e Health Checks.
18.1 Multi-Stage Builds & Hardening de Containers
Crie imagens Docker otimizadas divididas em estágios de build e runner, executando a aplicação sob usuário não-root node.
18.2 Projeto: Ambiente Completo Containerizado
Configure docker-compose.yml conectando os contêineres da API Node.js, PostgreSQL e Redis com volumes persistentes.
Módulo 19 — CI/CD e Deploy em Produção
Pipelines de CI/CD, Migrations Seguras, Reverse Proxy Nginx, SSL HTTPS e Zero-Downtime.
19.1 Pipelines GitHub Actions & Deploy Zero-Downtime
Configure pipeline de CI que executa linter, compilação TS e testes automatizados antes de realizar o deploy na VPS.
19.2 Projeto: Deploy da API em uma VPS Contabo
Suba a API Node.js containerizada em uma VPS operando atrás de proxy reverso Nginx com certificados TLS Full Strict.
Módulo 20 — Projeto Final: API de Gestão Logística
Construção da API de Gestão de Operações Logísticas integrando os 20 módulos anteriores.
20.1 Projeto Final: API de Gestão de Operações Logísticas
Aprenda requisitos integrados do projeto final com conceitos práticos e exercícios aplicados.