Aula 10 - Construindo APIs REST 🏗️
Arquitetura Profissional e Design de Recursos
Agenda de Hoje 📅
- O que é REST na Prática?
- Verbos HTTP e Semântica
- Organização por Camadas (Pattern)
- Status Codes: A Linguagem da Resposta
- JSON como Contrato
- Mini-Projeto: API de Livros
1. REST: Representational State Transfer 🧊
- É um estilo de arquitetura para sistemas distribuídos.
- Recurso: Tudo o que é Nomeável (Substantivo).
- URI: O Identificador único (ex:
/usuarios/1).
2. Verbos HTTP: As Ações 🎬
| Verbo | Ação | Ideal para... |
|---|---|---|
| GET | Ler | Listar ou buscar um item. |
| POST | Criar | Inserir novo dado. |
| PUT/PATCH | Atualizar | Alterar dados existentes. |
| DELETE | Remover | Apagar um recurso. |
3. Organização Profissional 📂
"Separe quem recebe o dado de quem decide o que fazer com ele."
- Handlers: Tratam o HTTP.
- Services: Regras de Negócio.
- Models/Entity: A cara do dado.
- Repository: Acesso ao Banco de Dados.
4. Diagrama de Camadas 📊
graph TD
Client[Browser/Postman] --> Handler[Handler/Controller]
Handler --> Service[Service/Business]
Service --> Repo[Repository/DB]
Repo --> Data[(Banco de Dados)]
5. Status Codes: O Feedback 🚦
- 2xx: Sucesso (200 OK, 201 Created).
- 4xx: Erro do Cliente (400 Bad Request, 404 Not Found).
- 5xx: Erro do Servidor (500 Internal Error).
6. Mini-Projeto: API de Livros 🚀
- Criar estrutura de pastas.
- Implementar Listagem e Cadastro.
- Separar Structs em um pacote
models.
Resumo da Aula ✅
- REST usa o protocolo HTTP de forma inteligente.
- Camadas facilitam a manutenção e testes.
- URIs devem ser substantivos, não verbos.
Próxima Aula: Framework Gin 🚀
- Desenvolvimento ultra-rápido.
- Validação automática de JSON.
Dúvidas? 🤔
"Uma boa API é aquela que se explica sozinha."