Pular para conteúdo

Aula 05 - Implementação de APIs ⚙️

Controllers e Rotas


Agenda 📅

  1. Camadas do Backend
  2. O Papel do Controller
  3. Rotas e Handlers
  4. Capturando Dados (Params/Body)
  5. Status Codes na Prática
  6. Injeção de Dependência

1. Organização em Camadas 🧱

  • Controller: Trata a entrada (HTTP).
  • Service: Regras de negócio.
  • Repository: Acesso ao banco.

2. O Papel do Controller 🎮

  • Ele é o ponto de entrada.
  • Não deve ter lógica complexa!
  • Deve apenas orquestrar a execução.

Controller = Garçom 🤵 Service = Cozinheiro 👨‍🍳


3. Rotas e Handlers 📍

  • Rota: Verbo HTTP + Path.
  • Handler: Função executada.
router.post('/login', controller.realizarLogin);

4. Capturando Dados 📥

  • Path Params: /id/123 (Identificação).
  • Query Params: ?q=busca (Filtro).
  • Body: Enviando JSON (Criação/Update).

5. Respostas de Qualidade 📤

  • Nunca esqueça o Status Code!
  • Sucesso: 200, 201, 204.
  • Erro: 400, 401, 404, 500.

6. Injeção de Dependência 💉

  • Receber serviços prontos.
  • Facilita testar o Controller "isolado".

7. Prática: O Primeiro Endpoint 💻

  • Mapeando um GET /ping.
  • Retornando um pong em JSON.
  • Testando no Insomnia/Postman.

Desafio: Params vs Query ⚡

Se você quer listar todos os alunos de uma sala com o nome "Pedro", qual tipo de parâmetro você usaria para o nome?


Resumo ✅

  • Controllers são a porta de entrada.
  • Devem ser leves e objetivos.
  • Capturam dados e retornam status/JSON.
  • Seguem as rotas definidas.

Próxima Aula: Regras de Negócio! 🧠

Services e Validações

  • Onde o cálculo acontece.
  • Isolando o código do "mundo externo".

Dúvidas? ⚙️