🚀 Capítulo 06: O que é REST e RESTful (Tema: Harry Potter)
NOTE
Este capítulo utiliza a temática de Harry Potter para explicar o padrão REST. O Ministério da Magia precisa de regras claras para que todas as vassouras e varinhas se comuniquem com o sistema central!
1. 🎯 Objetivo da Aula
Compreender os princípios da arquitetura REST (Representational State Transfer) e o que torna uma API considerada RESTful.
2. 🏢 O Cenário Prático (Seu Desafio)
O Ministério da Magia está cansado de cada bruxo inventar sua própria forma de enviar mensagens por coruja. Eles decidiram adotar um padrão universal chamado REST. A partir de agora, para pedir uma poção ou cadastrar um feitiço, todos devem seguir as mesmas regras. Seu desafio é entender essas regras para não ser multado pelo Ministério!
3. 🧠 Fundamentos: A Teoria Traduzida
REST significa Representational State Transfer (Transferência de Estado Representacional). Não é uma tecnologia ou linguagem, mas um estilo de arquitetura (um conjunto de boas práticas) para projetar APIs.
📜 Os Pilares de uma API RESTful:
- Tudo é um Recurso: Qualquer dado ou funcionalidade que queremos expor é um recurso. E cada recurso deve ter um endereço único (URL).
- Exemplo:
.../vassouras(representa a lista de vassouras).
- Exemplo:
- Interface Uniforme: Usamos os mesmos padrões da web que já conhecemos:
- Verbos HTTP (
GET,POST,PUT,DELETE). - Formato de dados padrão (JSON).
- Códigos de status (200, 404, etc.).
- Verbos HTTP (
- Stateless (Sem Estado): O servidor não guarda memória de quem você é entre uma requisição e outra. Cada requisição deve conter todas as informações necessárias para ser processada (como mandar o seu RG em toda carta que envia para o Ministério).
4. 📖 Exemplo Guiado: O Padrão de URLs REST
Boas práticas para criar URLs REST:
- Use substantivos no plural, nunca verbos:
- Correto:
GET /vassouras(Para buscar vassouras). - Errado:
GET /buscarVassouras(Não use verbos na URL!).
- Correto:
- Use o ID para recursos específicos:
GET /vassouras/nimbus2000(Busca a vassoura específica).
5. 🛠️ Prática Obrigatória 1: Julgamento do Ministério
Diga se as URLs abaixo seguem as boas práticas do padrão REST (Responda com Sim ou Não):
POST /criarNovoAlunoGET /alunosDELETE /alunos/123POST /atualizar_senha_usuario
6. 🛠️ Prática Obrigatória 2: O Conceito de Stateless
Explique com suas palavras por que o servidor ser “Stateless” (não guardar estado) ajuda o sistema a aguentar mais acessos ao mesmo tempo (Escalabilidade).
7. 📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)
- Faça o Commit: No GitHub Desktop, digite a mensagem (ex:
Finaliza Capítulo 06 Backend) e clique em Commit to main. - Envie para a Nuvem (Push): Clique em Push origin.
8. 📂 Estrutura de Pastas
mod_07_backend_e_apis/
├── capitulos/
│ ├── capitulo_06_rest.md
│ └── codigos/
│ └── cap06/
│ └── avaliacao_rest.txt9. 💡 Checkpoint de Lógica
Se uma API usa JSON e Verbos HTTP, ela é automaticamente RESTful? (Dica: REST é um conjunto de restrições. Usar as tecnologias não significa seguir todas as regras).
10. 🔥 Desafio de Fixação
Pesquise sobre o modelo de maturidade de Richardson (Richardson Maturity Model) para APIs REST.
11. 🔑 Gabarito de Código/Fórmulas
Gabarito da Prática 1:
- Não (Usou verbo).
- Sim (Substantivo no plural).
- Sim (Substantivo + ID).
- Não (Usou verbo).