Skip to content

dev-queiroz/mercado-global-api

Repository files navigation

E-commerce Serverless API com Cloudflare Workers

📌 O que esse sistema faz?

Essa API de e-commerce serverless foi construída com Cloudflare Workers e Workers KV, projetada para operar no tier gratuito da Cloudflare (100.000 requisições/dia e 1 GB de armazenamento KV). Implementa autenticação, gestão de produtos, carrinho e pedidos, com documentação interativa via Swagger UI. Desenvolvida em TypeScript, demonstra escalabilidade, tipagem forte e integração com armazenamento distribuído."

🚀 Funcionalidades principais:

  • 🛡️ Autenticação Simples (/auth - GET)

    • Gera ou utiliza um ID de usuário baseado no header X-User-ID.
    • Exemplo de resposta: { "userId": "user-abc123" }.
  • 🛒 Gestão de Produtos (/products - GET e POST)

    • GET: Lista todos os produtos armazenados no Workers KV.
    • POST: Adiciona um novo produto ao catálogo, validando id, name, price e stock.
    • Exemplo de corpo: { "id": "1", "name": "Camiseta", "price": 29.99, "stock": 100 }.
  • 🛍️ Gestão de Carrinho (/cart - GET e POST)

    • GET: Retorna os itens no carrinho de um usuário específico.
    • POST: Adiciona um item ao carrinho, validando productId e quantity.
    • Exemplo de corpo: { "productId": "1", "quantity": 2 }.
  • 📦 Processamento de Pedidos (/orders - POST)

    • Finaliza o pedido do usuário, verifica estoque, calcula o total, atualiza estoque e salva o pedido.
    • Exemplo de resposta:
      {
      	"id": "1647830400000",
      	"userId": "user1",
      	"items": [{ "productId": "1", "quantity": 2 }],
      	"total": 59.98,
      	"date": "2025-03-19T12:00:00.000Z"
      }
  • 📖 Documentação Interativa (/docs - GET)

    • Interface Swagger UI documenta e permite testar os endpoints diretamente no navegador.

⚙️ Como funciona?

  • 💾 Armazenamento: Workers KV armazena produtos, carrinhos e pedidos em JSON.
  • ☁️ Serverless: Executa no Cloudflare Workers, sem necessidade de servidor físico.
  • 📘 Swagger UI: Interface gráfica para testar a API, gerada a partir de um objeto OpenAPI em JavaScript.

💡 Habilidades comprovadas no projeto

1️⃣ Desenvolvimento Serverless

  • Uso de Cloudflare Workers para construir aplicações escaláveis e de baixo custo.
  • Impacto: Demonstra experiência com computação sem servidor.

2️⃣ TypeScript

  • Tipagem forte e desenvolvimento robusto.
  • Impacto: Código seguro e manutenível, usando interfaces para produtos, carrinhos e pedidos.

3️⃣ Gerenciamento de Estado com Armazenamento Distribuído

  • Uso de Workers KV para persistência de dados.
  • Impacto: Capacidade de gerenciar estado sem bancos de dados tradicionais.

4️⃣ Desenvolvimento de APIs RESTful

  • Endpoints estruturados seguindo padrões REST.
  • Impacto: Demonstra conhecimento em arquitetura de APIs modernas.

5️⃣ Documentação de API com OpenAPI/Swagger

  • Swagger UI integrado para documentação interativa.
  • Impacto: Facilita uso por outros desenvolvedores.

6️⃣ Resolução de Problemas e Depuração

  • Solução de problemas de parsing no Swagger UI.
  • Impacto: Resiliência e pensamento analítico.

7️⃣ Integração de Ferramentas Modernas

  • Uso do Wrangler CLI para deploy e Swagger UI para documentação.
  • Impacto: Familiaridade com o ecossistema Cloudflare.

8️⃣ Gerenciamento de Projetos

  • README.md bem estruturado e separação modular do código.
  • Impacto: Evidencia organização e boas práticas de desenvolvimento.

🛠 Tecnologias:

  • 🌍 Cloudflare Workers
  • 💾 Workers KV
  • 📌 TypeScript
  • 📖 OpenAPI/Swagger UI
  • ⚡ Wrangler CLI

🔥 Funcionalidades:

  • ✅ Autenticação dinâmica de usuários.
  • ✅ CRUD básico de produtos.
  • ✅ Gerenciamento de carrinho por usuário.
  • ✅ Processamento de pedidos com atualização de estoque.
  • ✅ Interface Swagger para testes interativos.

🔗 Links:

🏆 Desafios Superados:

"Resolvi problemas de parsing no Swagger UI adaptando a geração de especificações de YAML para JSON dinâmico, garantindo robustez no tier gratuito da Cloudflare."

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published