📦

API de Pedidos Online v2.0

Cloudflare Workers • SQLite D1 Database

Token Padrão: secret-token-123
Testar API →

Visão Geral da API

API RESTful de gerenciamento e persistência de pedidos desenvolvida com Cloudflare Workers e banco relacional SQLite (Cloudflare D1). Fornece alta disponibilidade global com latência mínima.

🔐 Autenticação

Para rotas de escrita (POST e PATCH), envie o token em qualquer um destes cabeçalhos:

Authorization: Bearer secret-token-123
-- ou --
X-API-Key: secret-token-123
🏷️ Status Suportados

Pedidos aceitam os seguintes status padrão:

pendente pago enviado cancelado
GET /orders/summary
Público

Retorna métricas consolidadas em tempo real: total de pedidos cadastrados, faturamento bruto somado e distribuição quantitativa por status.

Comando cURL:
curl -s -X GET "https://pedidos-online-d338d8.skills.express/orders/summary"
Exemplo de Resposta (200 OK):
{
  "total_pedidos": 12,
  "total_faturado": 4580.50,
  "por_status": {
    "pendente": 3,
    "pago": 6,
    "enviado": 2,
    "cancelado": 1
  }
}
GET /orders
Público

Lista todos os pedidos registrados. Suporta paginação visual e filtros via query parameters.

Parâmetros de Consulta (Query Params):
  • status (opcional): filtra pedidos por status (ex: ?status=pago ou ?status=pendente).
  • sort (opcional): ordenação por ID (desc [padrão] ou asc).
Comando cURL:
curl -s -X GET "https://pedidos-online-d338d8.skills.express/orders?status=pago&sort=desc"
Exemplo de Resposta (200 OK):
{
  "total": 1,
  "orders": [
    {
      "id": 1,
      "cliente": {
        "nome": "Maria Silva",
        "email": "maria@example.com"
      },
      "itens": [
        { "produto": "Notebook Pro", "quantidade": 1, "preco": 3500.00 }
      ],
      "valor": 3500.00,
      "status": "pago",
      "data_criacao": "2025-05-10T14:30:00Z"
    }
  ]
}
GET /orders/:id
Público

Obtém os detalhes completos de um pedido específico identificado pelo seu ID numérico. Retorna 404 Not Found caso não exista.

Comando cURL:
curl -s -X GET "https://pedidos-online-d338d8.skills.express/orders/1"
Sucesso (200 OK):
{
  "order": {
    "id": 1,
    "cliente": { "nome": "Maria Silva", "email": "maria@example.com" },
    "itens": [{ "produto": "Notebook Pro", "quantidade": 1, "preco": 3500 }],
    "valor": 3500,
    "status": "pago",
    "data_criacao": "2025-05-10T14:30:00Z"
  }
}
Não encontrado (404 Not Found):
{
  "error": "Pedido #999 não encontrado."
}
POST /orders
Requer Token

Registra um novo pedido no banco de dados. Exige token de autorização no cabeçalho Authorization: Bearer secret-token-123 ou X-API-Key: secret-token-123.

Comando cURL:
curl -s -X POST "https://pedidos-online-d338d8.skills.express/orders"   -H "Content-Type: application/json"   -H "X-API-Key: secret-token-123"   -d '{
    "cliente": { "nome": "Carlos Mendes", "email": "carlos@empresa.com" },
    "itens": [
      { "produto": "Monitor Ultrawide 34", "quantidade": 1, "preco": 2100.00 },
      { "produto": "Suporte Articulado", "quantidade": 1, "preco": 250.00 }
    ],
    "valor": 2350.00,
    "status": "pendente"
  }'
Resposta de Sucesso (201 Created):
{
  "message": "Pedido criado com sucesso!",
  "order": {
    "id": 2,
    "cliente": { "nome": "Carlos Mendes", "email": "carlos@empresa.com" },
    "itens": [
      { "produto": "Monitor Ultrawide 34", "quantidade": 1, "preco": 2100 },
      { "produto": "Suporte Articulado", "quantidade": 1, "preco": 250 }
    ],
    "valor": 2350,
    "status": "pendente",
    "data_criacao": "2025-05-10T15:00:00.000Z"
  }
}
PATCH /orders/:id/status
Requer Token

Atualiza o status de um pedido já existente (ex: de pendente para pago ou enviado). Também compatível via PUT /orders/:id.

Comando cURL:
curl -s -X PATCH "https://pedidos-online-d338d8.skills.express/orders/1/status"   -H "Content-Type: application/json"   -H "Authorization: Bearer secret-token-123"   -d '{"status": "pago"}'
Sucesso (200 OK):
{
  "message": "Status do pedido #1 atualizado para 'pago' com sucesso!",
  "order": {
    "id": 1,
    "cliente": { "nome": "Maria Silva" },
    "itens": [...],
    "valor": 3500,
    "status": "pago",
    "data_criacao": "2025-05-10T14:30:00Z"
  }
}
Não autorizado (401 Unauthorized):
{
  "error": "Não autorizado. Token de autenticação inválido ou ausente."
}
⚡

Console Interativo de Teste da API

Execute requisições reais diretamente do seu navegador nesta instância.

Resposta da API: Aguardando execução...
// O resultado da chamada aparecerá aqui...