🚀 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:

  1. 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).
  2. 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.).
  3. 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!).
  • 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):

  1. POST /criarNovoAluno
  2. GET /alunos
  3. DELETE /alunos/123
  4. POST /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)

  1. Faça o Commit: No GitHub Desktop, digite a mensagem (ex: Finaliza Capítulo 06 Backend) e clique em Commit to main.
  2. 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.txt

9. 💡 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:

  1. Não (Usou verbo).
  2. Sim (Substantivo no plural).
  3. Sim (Substantivo + ID).
  4. Não (Usou verbo).

Capitulo Anterior | Proximo Capitulo