Pular para o conteúdo
Voltar às Trilhas Intermediário
Node.js & Arquitetura de APIs RESTful Profissionais
🟢

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.

Capítulos 21
Progresso 0/40 aulas
Concluído 0%
🛠️
CAPÍTULO 1

Módulo 0 — Preparação do Ambiente

1 aulas

Node.js LTS, VS Code, REPL, npm, package.json, Módulos ES, Env e Git.

🟢
CAPÍTULO 2

Módulo 1 — Fundamentos do Node.js

2 aulas

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.

Bloqueada
🔒

1.2 Projeto: Processador Assíncrono de Arquivos

Utilize fs.createReadStream e Transform Streams para processar arquivos gigabytes sem estourar a memória RAM.

Bloqueada
🌐
CAPÍTULO 3

Módulo 2 — HTTP e Fundamentos da Web

2 aulas

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).

Bloqueada
🔒

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.

Bloqueada
📋
CAPÍTULO 4

Módulo 3 — Fundamentos de APIs RESTful

2 aulas

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.

Bloqueada
🔒

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.

Bloqueada
CAPÍTULO 5

Módulo 4 — Construção de APIs com Fastify

2 aulas

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.

Bloqueada
🔒

4.2 Projeto: CRUD de Produtos em Memória

Implemente o CRUD de produtos separando rotas em plugins registrados via fastify.register().

Bloqueada
🟦
CAPÍTULO 6

Módulo 5 — TypeScript Aplicado ao Backend

2 aulas

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).

Bloqueada
🔒

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.

Bloqueada
🗄️
CAPÍTULO 7

Módulo 6 — Modelagem e PostgreSQL

2 aulas

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.

Bloqueada
🔒

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.

Bloqueada
🏗️
CAPÍTULO 8

Módulo 7 — Arquitetura em Camadas

2 aulas

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.

Bloqueada
🔒

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).

Bloqueada
📐
CAPÍTULO 9

Módulo 8 — Design Profissional de APIs

2 aulas

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.

Bloqueada
🔒

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.

Bloqueada
🛡️
CAPÍTULO 10

Módulo 9 — Validação e Regras de Negócio

2 aulas

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.

Bloqueada
🔒

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.

Bloqueada
🔐
CAPÍTULO 11

Módulo 10 — Autenticação e Autorização

2 aulas

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.

Bloqueada
🔒

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).

Bloqueada
🛡️
CAPÍTULO 12

Módulo 11 — Segurança de APIs (OWASP Top 10)

2 aulas

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.

Bloqueada
🔒

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.

Bloqueada
CAPÍTULO 13

Módulo 12 — Tratamento de Erros e Confiabilidade

2 aulas

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.

Bloqueada
🔒

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.

Bloqueada
🧪
CAPÍTULO 14

Módulo 13 — Testes Automatizados

2 aulas

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.

Bloqueada
🔒

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.

Bloqueada
📄
CAPÍTULO 15

Módulo 14 — Documentação com OpenAPI

2 aulas

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.

Bloqueada
🔒

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.

Bloqueada
📈
CAPÍTULO 16

Módulo 15 — Performance e Escalabilidade

2 aulas

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.

Bloqueada
🔒

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.

Bloqueada
📬
CAPÍTULO 17

Módulo 16 — Filas e Processamento Assíncrono

2 aulas

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.

Bloqueada
🔒

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.

Bloqueada
📊
CAPÍTULO 18

Módulo 17 — Observabilidade (OpenTelemetry)

2 aulas

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.

Bloqueada
🔒

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.

Bloqueada
🐳
CAPÍTULO 19

Módulo 18 — Docker e Configuração (12-Factor App)

2 aulas

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.

Bloqueada
🔒

18.2 Projeto: Ambiente Completo Containerizado

Configure docker-compose.yml conectando os contêineres da API Node.js, PostgreSQL e Redis com volumes persistentes.

Bloqueada
🚀
CAPÍTULO 20

Módulo 19 — CI/CD e Deploy em Produção

2 aulas

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.

Bloqueada
🔒

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.

Bloqueada
🏆
CAPÍTULO 21

Módulo 20 — Projeto Final: API de Gestão Logística

1 aulas

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.

Bloqueada