3.O Que é cURL?

O cURL (Client URL) é uma ferramenta de linha de comando usada para fazer requisições HTTP, como acessar sites ou se conectar a APIs. Ele é essencial para testar APIs, automatizar requisições e integrar sistemas.

📖 Analogia: O Garçom em um Restaurante

Imagine que você está em um restaurante e quer pedir um prato. Para isso, você precisa:

1. Chamar o garçom (enviar um pedido).

2. Dizer o que deseja (fornecer detalhes como tipo de comida e bebida).

3. O garçom anota tudo corretamente e leva até a cozinha (transmissão de dados).

4. A cozinha prepara o prato e o garçom traz a comida para você (resposta da API).

O cURL funciona como esse garçom. Ele envia um pedido (request) e traz uma resposta (response).

🎯 A Importância do cURL

O cURL é amplamente usado por praticamente todas as APIs porque ele permite:

Testar requisições rapidamente sem precisar programar.

Automatizar chamadas de APIs em servidores e sistemas.

Interagir com qualquer API que utilize HTTP.

Depurar erros e analisar respostas de APIs.

Sempre que uma API realiza uma requisição, internamente ela pode estar usando cURL ou algo semelhante para processar os pedidos.

🏗️ Os Elementos de uma Requisição cURL

Uma requisição cURL para uma API pode conter diversos elementos. Vamos entender os principais:

1️⃣ URL da API

A URL é o endereço da API que você quer acessar.

Exemplo:

curl -X GET "https://api.exemplo.com/usuarios"

Aqui, estamos enviando um GET para pegar a lista de usuários.

2️⃣ Headers (Cabeçalhos)

Os headers são informações extras enviadas na requisição. Eles podem definir:

  • Formato dos dados (JSON, XML, etc.)

  • Autenticação com Token

  • Idioma da resposta

Exemplo com cabeçalho JSON:

curl -X GET "https://api.exemplo.com/usuarios" -H "Content-Type: application/json"
3️⃣ Query Parameters (Parâmetros na URL)

Os parâmetros de consulta (query parameters) são enviados na própria URL e usados para filtrar ou modificar a resposta.

Exemplo: Buscar apenas usuários ativos

curl -X GET "https://api.exemplo.com/usuarios?status=ativo"

Aqui, ?status=ativo é um query parameter, filtrando os usuários ativos.

4️⃣ Body (Corpo da Requisição)

O body é usado para enviar dados na requisição, como informações de cadastro ou pagamento.

Exemplo: Criando um novo usuário com JSON

curl -X POST "https://api.exemplo.com/usuarios" \
     -H "Content-Type: application/json" \
     -d '{
          "nome": "João Silva",
          "email": "joao@email.com"
         }'

Aqui:

  • -X POST → Diz que estamos enviando um POST (criando um novo usuário).

  • -H "Content-Type: application/json" → Define que estamos enviando JSON.

  • -d '{...}' → Envia os dados no body da requisição.

5️⃣ Token ou Chave de API (Autenticação)

A maioria das APIs exige um token de autenticação para garantir que apenas usuários autorizados possam acessá-las.

Exemplo: Requisição autenticada com um token

curl -X GET "https://api.exemplo.com/usuarios" \
     -H "Authorization: Bearer SEU_TOKEN_AQUI"

🚀 Exemplos Práticos de Uso do cURL

Agora que entendemos os principais elementos, vamos ver exemplos completos de como interagir com APIs.

1️⃣ Buscar produtos disponíveis na API de uma loja
curl -X GET "https://api.loja.com/produtos?categoria=eletronicos"

💡 Aqui estamos pedindo apenas os produtos da categoria eletrônicos.

2️⃣ Criar um novo pedido na API de um e-commerce
curl -X POST "https://api.loja.com/pedido" \
     -H "Content-Type: application/json" \
     -H "Authorization: Bearer SEU_TOKEN_AQUI" \
     -d '{
          "produto_id": 123,
          "quantidade": 2,
          "endereco": "Rua A, 123, São Paulo"
         }'

💡 Estamos enviando um pedido para comprar 2 unidades do produto 123 e entregá-lo no endereço informado.

3️⃣ Atualizar o status de um pedido para “Enviado”
curl -X PUT "https://api.loja.com/pedido/123" \
     -H "Content-Type: application/json" \
     -H "Authorization: Bearer SEU_TOKEN_AQUI" \
     -d '{
          "status": "Enviado"
         }'

💡 O método PUT é usado para atualizar informações em um servidor.

4️⃣ Deletar um usuário do sistema
curl -X DELETE "https://api.exemplo.com/usuarios/45" \
     -H "Authorization: Bearer SEU_TOKEN_AQUI"

💡 Aqui estamos excluindo o usuário de ID 45.

Atualizado