Skip to content

Capítulo 1.2: Métodos HTTP e Códigos de Status

Tempo de estudo: 40 minutos


1. HTTP: A Linguagem de Comunicação no Espaço

Imagine que você é o Centro de Controle da Missão (MCC) e o servidor da API é uma nave espacial. HTTP (HyperText Transfer Protocol) é a comunicação por rádio entre vocês.

Cada mensagem contém:

  • Método → O que fazer (por exemplo, "enviar uma sonda")

  • Código de Status → O resultado da operação ("sonda lançada com sucesso!")

💡 Analogia Espacial: GET /stars = "MCC → Nave: Dê-me as coordenadas das estrelas!" 200 OK = "Nave → MCC: Coordenadas transmitidas!"


2. Métodos HTTP Principais

Cada método é como um tipo de comando para uma missão espacial:

Método Análogo no Espaço Exemplo de Solicitação Descrição
GET Solicitação de dados (telescópio) GET /planets Obter uma lista de planetas
POST Envio de um novo objeto (lançamento de foguete) POST /satellites Criar um novo satélite
PUT Atualização completa de um objeto (correção de órbita) PUT /satellites/iss Atualizar dados da ISS
DELETE Destruição de um objeto (saída de órbita) DELETE /debris/123 Excluir lixo espacial

⚡ Exemplo de Código (Python):

import requests

# GET: Obter dados do foguete Falcon 9
# Usamos um endpoint real da API SpaceX
response = requests.get("https://api.spacexdata.com/v4/rockets/5e9d0d95eda69973a809d1ec")
print(response.status_code, response.json()['name']) # 200 Falcon 9

# POST: Criar uma nova postagem em uma API de teste
# Usamos o serviço sandbox jsonplaceholder
new_post = {"title": "Artemis Mission", "body": "Ready for launch", "userId": 1}
response = requests.post("https://jsonplaceholder.typicode.com/posts", json=new_post)
print(response.status_code, response.json()['id'])  # 201 101 (ou outro ID)


3. Códigos de Status Importantes

A resposta do servidor é como um sinal da nave espacial:

Grupo Código Análogo no Espaço Descrição
2xx 200 ✅ "Tarefa concluída!" Sucesso
201 🚀 "Foguete lançado!" Objeto criado
3xx 301 🌍 "MCC movido para um novo endereço" Redirecionamento
4xx 400 ❌ "Coordenadas incorretas na solicitação!" Erro do cliente
404 🪐 "Planeta não encontrado!" Recurso não existe
5xx 500 🔥 "Falha no sistema de propulsão!" Erro do servidor

4. Prática: Tratamento de Códigos de Status

Sempre verifique a resposta da API! Exemplo de tratamento de erros:

import requests

def get_post_data(post_id):
    """Função para obter dados de postagem com tratamento de códigos de status."""
    try:
        response = requests.get(f"https://jsonplaceholder.typicode.com/posts/{post_id}")

        # Verifica o código de status da resposta
        if response.status_code == 200:
            print(f"✅ Dados para a postagem {post_id} recebidos com sucesso!")
            return response.json()
        elif response.status_code == 404:
            print(f"⚠️ Recurso para a postagem {post_id} não encontrado!")
            return None
        else:
            # Tratamento de outros erros do cliente (4xx) ou do servidor (5xx)
            print(f"🚨 Ocorreu um erro! Código de status: {response.status_code}")
            return None

    except requests.exceptions.RequestException as e:
        # Tratamento de erros de conexão (por exemplo, sem internet)
        print(f"🔥 Erro de conexão: {e}")
        return None

# --- Testamos nossa função ---
print("--- Buscando postagem existente ---")
get_post_data(1)

print("\n--- Buscando postagem inexistente ---")
get_post_data(9999) # Esta postagem não existe, esperamos 404

🔭 Exemplo de uma API real (SpaceX): Solicitação: GET https://api.spacexdata.com/v4/ships/OCISLY Resposta: 200 OK + dados da nave Solicitação: GET https://api.spacexdata.com/v4/ships/UNICORN Resposta: 404 Not Found


Quiz para fixação

1. Qual método usar para obter dados sobre as estrelas?

2. O status `201 Created` significa:

3. Método para atualização completa dos dados do satélite:

4. O que significa o status `500 Internal Server Error`?


🚀 Resumo do Capítulo: Métodos HTTP são seus comandos para missões espaciais, e códigos de status são os relatórios de sua execução. Lembre-se:

GET = "Dê-me dados", POST = "Crie algo novo", PUT = "Atualize tudo", DELETE = "Destrua" 2xx = Sucesso, 4xx = Seu erro, 5xx = Problema no servidor

Prepare-se para o lançamento! No próximo capítulo, decifraremos as "telecomunicações" do servidor – o formato JSON.

📌 Prática: Use a SpaceX API para enviar um GET /launches/latest e estudar os códigos de resposta!