Criar uma API serverless para gerenciar pedidos de uma loja, permitindo:
- Criar um pedido (endpoint de cadastro).
- Consultar pedidos (endpoint de listagem).
- Obter detalhes de um pedido especĆfico.
- Atualizar o status do pedido.
- Deletar um pedido.
A arquitetura serĆ” serverless, podendo utilizar AWS Lambda, Azure Functions ou Google Run Functions, persistindo os dados em um banco de sua escolha.
Cada pedido pode ter os seguintes campos:
| Campo | Tipo | Descrição |
|---|---|---|
| id | String (UUID) | Identificador Ćŗnico do pedido |
| cliente | String | Nome do cliente que fez o pedido |
| String | Email do cliente | |
| itens | Array de objetos | Lista dos produtos do pedido |
| total | NĆŗmero (float) | Valor total do pedido |
| status | String (enum) | Status do pedido (PENDENTE, PROCESSANDO, ENVIADO, CANCELADO) |
| data_criacao | Timestamp | Data e hora do pedido |
| data_atualizacao | Timestamp | Ćltima modificação do pedido |
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"cliente": "João Silva",
"email": "joao@email.com",
"itens": [
{ "produto": "CafƩ Expresso", "quantidade": 2, "preco": 5.00 },
{ "produto": "PĆ£o de Queijo", "quantidade": 1, "preco": 3.50 }
],
"total": 13.50,
"status": "PENDENTE",
"data_criacao": "2025-02-23T12:00:00Z",
"data_atualizacao": "2025-02-23T12:00:00Z"
}- Rota:
POST /pedidos - Descrição: Cadastra um novo pedido.
- Entrada (body JSON):
{
"cliente": "João Silva",
"email": "joao@email.com",
"itens": [
{ "produto": "CafƩ Expresso", "quantidade": 2, "preco": 5.00 }
]
}- Resposta (201 Created):
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"status": "PENDENTE",
"total": 10.00,
"data_criacao": "2025-02-23T12:00:00Z"
}- Rota:
GET /pedidos - Descrição: Retorna todos os pedidos cadastrados.
- Resposta (200 OK):
[
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"cliente": "João Silva",
"total": 10.00,
"status": "PENDENTE"
},
{
"id": "b4567d89-e12a-34c5-d678-876543210000",
"cliente": "Maria Souza",
"total": 22.50,
"status": "ENVIADO"
}
]- Rota:
GET /pedidos/{id} - Descrição: Retorna os detalhes completos de um pedido especĆfico.
- Exemplo:
GET /pedidos/123e4567-e89b-12d3-a456-426614174000 - Resposta (200 OK):
{
"id": "123e4567-e89b-12d3-a456-426614174000",
"cliente": "João Silva",
"email": "joao@email.com",
"itens": [
{ "produto": "CafƩ Expresso", "quantidade": 2, "preco": 5.00 }
],
"total": 10.00,
"status": "PENDENTE",
"data_criacao": "2025-02-23T12:00:00Z",
"data_atualizacao": "2025-02-23T12:00:00Z"
}- Backend: AWS Lambda / Azure Functions / Google Run Functions
- Banco de Dados: A definir (DynamoDB, PostgreSQL, etc.)
- Linguagem: A definir (Node.js, Python, Go, etc.)