feat: RRBEC Local Server - Go backend with Django sync
- Implement local-first architecture with SQLite - Add bidirectional sync with Django via ChangeLog - JWT authentication with auto-refresh token - REST API for products, orders, commands, payments - Stock management with automatic deduction
This commit is contained in:
135
GUIA_API.md
Normal file
135
GUIA_API.md
Normal file
@@ -0,0 +1,135 @@
|
||||
# Guia de Teste da API com Postman
|
||||
|
||||
Este documento explica como testar os endpoints da API do sistema **Gestão Raul** utilizando o Postman.
|
||||
|
||||
---
|
||||
|
||||
## 1. Passo 1: Obter o Token de Acesso (Login)
|
||||
|
||||
Como a API é protegida, você precisa primeiro de um token de autorização.
|
||||
|
||||
1. Abra o **Postman** e crie uma nova aba de requisição.
|
||||
2. Mude o método para **POST**.
|
||||
3. Coloque a URL: `http://localhost:8000/api/v1/token/`
|
||||
4. Vá na aba **Body**, selecione a opção **raw** e escolha **JSON** no menu à direita.
|
||||
5. Insira suas credenciais no formato abaixo:
|
||||
```json
|
||||
{
|
||||
"username": "seu_usuario_django",
|
||||
"password": "sua_senha_django"
|
||||
}
|
||||
```
|
||||
6. Clique em **Send**.
|
||||
7. No resultado (JSON), copie o código que aparece no campo `"access"`.
|
||||
|
||||
---
|
||||
|
||||
## 2. Passo 2: Acessar os Endpoints da API
|
||||
|
||||
Agora que você tem o token, pode acessar qualquer endpoint protegido (ex: Pedidos).
|
||||
|
||||
1. Crie uma nova aba de requisição no Postman.
|
||||
2. Mude o método para **GET**.
|
||||
3. Coloque a URL do endpoint que deseja testar, por exemplo:
|
||||
`http://localhost:8000/api/v1/orders/`
|
||||
4. Vá na aba **Authorization** (fica logo abaixo da URL).
|
||||
5. No campo **Type**, selecione **Bearer Token**.
|
||||
6. No campo **Token** (à direita), cole o código `"access"` que você copiou no Passo 1.
|
||||
7. Clique em **Send**.
|
||||
|
||||
Você deverá ver a lista de dados em formato JSON.
|
||||
|
||||
---
|
||||
|
||||
## Dicas Rápidas
|
||||
- **Erro 401 Unauthorized:** Significa que o token não foi enviado corretamente ou expirou. Obtenha um novo no Passo 1.
|
||||
- **CORS:** O backend está configurado para aceitar requisições de outras origens (CORS), permitindo que seu frontend se conecte normalmente.
|
||||
- **Endpoints Disponíveis:**
|
||||
- `/api/v1/orders/` (Pedidos)
|
||||
- `/api/v1/products/` (Produtos)
|
||||
- `/api/v1/clients/` (Clientes)
|
||||
- `/api/v1/mesas/` (Mesas)
|
||||
- `/api/v1/comandas/` (Comandas)
|
||||
- `/api/v1/items-comanda/` (Itens de Comanda)
|
||||
- `/api/v1/categories/` (Categorias)
|
||||
- `/api/v1/payment-types/` (Tipos de Pagamento)
|
||||
- `/api/v1/payments/` (Registro de Pagamentos)
|
||||
|
||||
---
|
||||
|
||||
## 3. Ações Especiais (Custom Actions)
|
||||
|
||||
### Apagar/Limpar Comanda Inteira
|
||||
Esta ação exclui todos os itens vinculados à comanda e muda o seu status para `CLOSED`.
|
||||
- **Método:** `POST`
|
||||
- **URL:** `http://localhost:8000/api/v1/comandas/{ID_DA_COMANDA}/apagar/`
|
||||
- **Auth:** Bearer Token necessário.
|
||||
- **Body:** Vazio.
|
||||
|
||||
### Apagar um Item Individual da Comanda
|
||||
Esta ação exclui um único item e devolve a quantidade correspondente ao estoque.
|
||||
- **Método:** `DELETE`
|
||||
- **URL:** `http://localhost:8000/api/v1/items-comanda/{ID_DO_ITEM}/`
|
||||
- **Auth:** Bearer Token necessário.
|
||||
- **Body:** Vazio.
|
||||
|
||||
### Pagar e Fechar Comanda
|
||||
Esta ação registra um pagamento e fecha a comanda automaticamente.
|
||||
- **Método:** `POST`
|
||||
- **URL:** `http://localhost:8000/api/v1/comandas/{ID_DA_COMANDA}/pagar/`
|
||||
- **Auth:** Bearer Token necessário.
|
||||
- **Body (JSON):**
|
||||
```json
|
||||
{
|
||||
"value": 50.00,
|
||||
"type_pay": 1, // ID do tipo de pagamento
|
||||
"client": null, // ID do cliente (opcional)
|
||||
"description": "Pagamento total" // Opcional
|
||||
}
|
||||
```
|
||||
|
||||
### Listar Fiados de um Cliente
|
||||
Retorna todas as comandas com status `FIADO` vinculadas a um cliente específico.
|
||||
- **Método:** `GET`
|
||||
- **URL:** `http://localhost:8000/api/v1/clients/{ID_DO_CLIENTE}/fiados/`
|
||||
- **Auth:** Bearer Token necessário.
|
||||
- **Body:** Vazio.
|
||||
|
||||
### Pagar Múltiplos Fiados
|
||||
Recebe uma lista de IDs de comandas com status `FIADO`, gera os pagamentos e fecha todas.
|
||||
- **Método:** `POST`
|
||||
- **URL:** `http://localhost:8000/api/v1/clients/pagar_fiados/`
|
||||
- **Auth:** Bearer Token necessário.
|
||||
- **Body (JSON):**
|
||||
```json
|
||||
{
|
||||
"ids": [10, 11, 15] // IDs das comandas que deseja pagar
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 4. Gerenciamento de Pedidos (Orders)
|
||||
|
||||
### Editar Observação do Pedido
|
||||
Altera as observações de um pedido específico.
|
||||
- **Método:** `PATCH`
|
||||
- **URL:** `http://localhost:8000/api/v1/orders/{ID_DO_PEDIDO}/`
|
||||
- **Auth:** Bearer Token necessário.
|
||||
- **Body (JSON):**
|
||||
```json
|
||||
{
|
||||
"obs": "Nova observação detalhada"
|
||||
}
|
||||
```
|
||||
|
||||
### Atualizar Status do Pedido
|
||||
Ações para movimentar o fluxo da cozinha/atendimento.
|
||||
- **Método:** `POST`
|
||||
- **URLs:**
|
||||
- `.../api/v1/orders/{ID_DO_PEDIDO}/preparing/` (Iniciar Preparo)
|
||||
- `.../api/v1/orders/{ID_DO_PEDIDO}/finish/` (Marcar como Pronto)
|
||||
- `.../api/v1/orders/{ID_DO_PEDIDO}/deliver/` (Marcar como Entregue)
|
||||
- `.../api/v1/orders/{ID_DO_PEDIDO}/cancel/` (Cancelar Pedido)
|
||||
- **Auth:** Bearer Token necessário.
|
||||
- **Body:** Vazio.
|
||||
Reference in New Issue
Block a user