Aula 09: Ferramentas de API (Postman / Insomnia) 📡
🎯 Nossa Missão
- Entender o que é uma API e como ela se comunica.
- Dominar os métodos HTTP (GET, POST, etc.).
- Decifrar os códigos de status (200, 404, 500).
- Usar Clients HTTP como Postman e Insomnia.
🔌 O que é uma API?
Application Programming Interface. * O "garçom" que leva seu pedido ao servidor e traz a resposta. * Permite que sistemas diferentes falem a mesma língua. * Exemplo: Seu app de clima buscando dados do satélite.
🏗️ Anatomia de uma Requisição
mermaid graph LR U[URL / EndPoint] --- M[Metodo HTTP] M --- H[Headers] H --- B[Body / JSON]
🛤️ Endpoints: O Caminho
https://api.loja.com/v1/produtoshttps://api.loja.com/v1/usuarios/123- É o endereço específico onde o recurso mora.
🛠️ Métodos HTTP: Os Verbos
O que você quer fazer com o dado? * GET: Buscar informações. * POST: Criar algo novo. * PUT: Atualizar algo existente (completo). * PATCH: Atualizar algo existente (parcial). * DELETE: Remover algo.
📦 O Request Body (JSON)
Em métodos como POST e PUT, enviamos dados.
* JSON é o padrão de ouro da web moderna.🆔 Headers: Informações Extras
Content-Type: application/jsonAuthorization: Bearer <TOKEN>- Dizem ao servidor quem você é e o que está enviando.
🚦 Status Codes: A Resposta
Como saber se deu certo? * 2xx (Sucesso): 200 OK, 201 Created. * 3xx (Redirecionamento): 301 Moved. * 4xx (Erro do Cliente): 404 Not Found, 401 Unauthorized. * 5xx (Erro do Servidor): 500 Internal Error.
🟠 Postman / 🟣 Insomnia
Clients HTTP que facilitam a vida. * Não precisa de frontend para testar o backend. * Organize requisições em Collections. * Automatize testes de resposta. * Gere documentação automática.
🌍 O Fluxo da Requisição
```mermaid sequenceDiagram participant C as Cliente (Postman) participant S as Servidor (API) participant B as Banco de Dados
C->>S: GET /produtos (Request)
S->>B: SELECT * FROM produtos
B->>S: Dados dos produtos
S->>C: 200 OK + JSON (Response)
```
🛡️ Autenticação em APIs
Sua API não pode ser aberta para qualquer um! * API Keys: Chaves simples. * OAuth2: Padrão de apps grandes (Google/GitHub). * JWT (JSON Web Token): O token que viaja no Header.
📂 Organização em Coleções
- Agrupe por projeto ou por funcionalidade.
- Use Variáveis de Ambiente (
{{ url }}). - Mude de "Localhost" para "Produção" com um clique!
📝 Documentação: Swagger e Open API
- Seu colega de frontend precisa saber como usar sua API.
- O Swagger gera uma página interativa para testes.
- O Postman também permite publicar documentação.
🔍 Query Parameters
Filtrando o que você busca via URL. * api.com/v1/produtos?categoria=livros&ordem=preco * Tudo após o ? são parâmetros de consulta.
🗃️ Path Parameters
Identificando um recurso específico. * api.com/v1/usuarios/42 * O 42 é o ID dinâmico do usuário buscado.
🦁 Scripts e Testes no Postman
Você pode validar se o retorno foi correto automaticamente!
pm.test("Status code is 200", function () {
pm.response.to.have.status(200);
});
pm.test("Resposta deve ser JSON", function () {
pm.response.to.be.json;
});
📉 Mock Servers: Agilidade
- O backend ainda não está pronto?
- O Postman cria um servidor "mentira" (Mock).
- O frontend já pode começar a trabalhar com dados fakes!
🏆 Checklist de API Pro
- Conhece os significados de 200, 201, 400, 404 e 500.
- Sabe a diferença entre GET, POST, PUT e DELETE.
- Criou sua primeira Collection no Postman/Insomnia.
- Entende o papel do JSON no Request Body.
📝 Prática de Hoje
- Abrir o Postman ou Insomnia.
- Testar o endpoint da PokeAPI ou JSONPlaceholder.
- Analisar o JSON retornado e o Status Code.
🏁 Dúvidas?
Conectar sistemas é o que move a internet! 🚀📡