push da documentacao da api
This commit is contained in:
300
API.md
Normal file
300
API.md
Normal file
@@ -0,0 +1,300 @@
|
||||
# Portal Juru API Documentation
|
||||
|
||||
## Índice
|
||||
1. [Autenticação](#autenticação)
|
||||
2. [Endpoints](#endpoints)
|
||||
- [Consulta de Dados](#consulta-de-dados)
|
||||
- [Pedidos e Pagamentos](#pedidos-e-pagamentos)
|
||||
3. [Modelos de Dados](#modelos-de-dados)
|
||||
4. [Exemplos de Uso](#exemplos-de-uso)
|
||||
5. [Códigos de Erro](#códigos-de-erro)
|
||||
|
||||
## Autenticação
|
||||
|
||||
A API utiliza autenticação JWT. Para acessar os endpoints protegidos, inclua o token no header:
|
||||
|
||||
```
|
||||
Authorization: Bearer seu-token-jwt
|
||||
```
|
||||
|
||||
## Endpoints
|
||||
|
||||
### Consulta de Dados
|
||||
|
||||
#### Listar Lojas
|
||||
```http
|
||||
GET /api/v1/data-consult/stores
|
||||
```
|
||||
|
||||
**Resposta**
|
||||
```json
|
||||
[
|
||||
{
|
||||
"id": "001",
|
||||
"name": "Loja Principal",
|
||||
"store": "001 - Loja Principal"
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
#### Listar Vendedores
|
||||
```http
|
||||
GET /api/v1/data-consult/sellers
|
||||
```
|
||||
|
||||
**Resposta**
|
||||
```json
|
||||
[
|
||||
{
|
||||
"id": "001",
|
||||
"name": "João Silva"
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
#### Consultar Faturamento
|
||||
```http
|
||||
GET /api/v1/data-consult/billings
|
||||
```
|
||||
|
||||
**Resposta**
|
||||
```json
|
||||
[
|
||||
{
|
||||
"id": "001",
|
||||
"date": "2024-04-02T10:00:00Z",
|
||||
"total": 1000.00
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
#### Filtrar Clientes
|
||||
```http
|
||||
GET /api/v1/data-consult/customers/:filter
|
||||
```
|
||||
|
||||
**Parâmetros**
|
||||
- `filter`: Termo de busca (nome, documento, etc.)
|
||||
|
||||
**Resposta**
|
||||
```json
|
||||
[
|
||||
{
|
||||
"id": "001",
|
||||
"name": "Maria Silva",
|
||||
"document": "123.456.789-00"
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
#### Buscar Produtos
|
||||
```http
|
||||
GET /api/v1/data-consult/products/:filter
|
||||
```
|
||||
|
||||
**Parâmetros**
|
||||
- `filter`: Termo de busca (nome, código, etc.)
|
||||
|
||||
**Resposta**
|
||||
```json
|
||||
[
|
||||
{
|
||||
"id": "001",
|
||||
"name": "Produto Exemplo",
|
||||
"manufacturerCode": "ABC123"
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
### Pedidos e Pagamentos
|
||||
|
||||
#### Listar Pedidos da Loja
|
||||
```http
|
||||
GET /api/v1/orders-payment/orders/:id
|
||||
```
|
||||
|
||||
**Parâmetros**
|
||||
- `id`: ID da loja
|
||||
|
||||
**Resposta**
|
||||
```json
|
||||
[
|
||||
{
|
||||
"createDate": "2024-04-02T10:00:00Z",
|
||||
"storeId": "001",
|
||||
"orderId": 12345,
|
||||
"customerId": "001",
|
||||
"customerName": "João Silva",
|
||||
"sellerId": "001",
|
||||
"sellerName": "Maria Santos",
|
||||
"billingId": "001",
|
||||
"billingName": "Cartão de Crédito",
|
||||
"planId": "001",
|
||||
"planName": "3x sem juros",
|
||||
"amount": 1000.00,
|
||||
"installments": 3,
|
||||
"amountPaid": 1000.00
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
#### Buscar Pedido Específico
|
||||
```http
|
||||
GET /api/v1/orders-payment/orders/:id/:orderId
|
||||
```
|
||||
|
||||
**Parâmetros**
|
||||
- `id`: ID da loja
|
||||
- `orderId`: ID do pedido
|
||||
|
||||
**Resposta**
|
||||
```json
|
||||
{
|
||||
"createDate": "2024-04-02T10:00:00Z",
|
||||
"storeId": "001",
|
||||
"orderId": 12345,
|
||||
"customerId": "001",
|
||||
"customerName": "João Silva",
|
||||
"sellerId": "001",
|
||||
"sellerName": "Maria Santos",
|
||||
"billingId": "001",
|
||||
"billingName": "Cartão de Crédito",
|
||||
"planId": "001",
|
||||
"planName": "3x sem juros",
|
||||
"amount": 1000.00,
|
||||
"installments": 3,
|
||||
"amountPaid": 1000.00
|
||||
}
|
||||
```
|
||||
|
||||
#### Listar Pagamentos do Pedido
|
||||
```http
|
||||
GET /api/v1/orders-payment/payments/:id
|
||||
```
|
||||
|
||||
**Parâmetros**
|
||||
- `id`: ID do pedido
|
||||
|
||||
**Resposta**
|
||||
```json
|
||||
[
|
||||
{
|
||||
"orderId": 12345,
|
||||
"payDate": "2024-04-02T10:00:00Z",
|
||||
"card": "**** **** **** 1234",
|
||||
"installments": 3,
|
||||
"flagName": "VISA",
|
||||
"type": "CREDITO",
|
||||
"amount": 1000.00,
|
||||
"userId": "001",
|
||||
"nsu": "123456789",
|
||||
"auth": "A12345"
|
||||
}
|
||||
]
|
||||
```
|
||||
|
||||
#### Criar Pagamento
|
||||
```http
|
||||
POST /api/v1/orders-payment/payments/create
|
||||
```
|
||||
|
||||
**Corpo da Requisição**
|
||||
```json
|
||||
{
|
||||
"orderId": 12345,
|
||||
"card": "**** **** **** 1234",
|
||||
"auth": "A12345",
|
||||
"nsu": "123456789",
|
||||
"installments": 3,
|
||||
"amount": 1000.00,
|
||||
"flagName": "VISA",
|
||||
"paymentType": "CREDITO",
|
||||
"userId": 1
|
||||
}
|
||||
```
|
||||
|
||||
#### Criar Fatura
|
||||
```http
|
||||
POST /api/v1/orders-payment/invoice/create
|
||||
```
|
||||
|
||||
**Corpo da Requisição**
|
||||
```json
|
||||
{
|
||||
"orderId": 12345,
|
||||
"userId": 1
|
||||
}
|
||||
```
|
||||
|
||||
## Modelos de Dados
|
||||
|
||||
### OrderDto
|
||||
```typescript
|
||||
interface OrderDto {
|
||||
createDate: Date; // Data de criação do pedido
|
||||
storeId: string; // ID da loja
|
||||
orderId: number; // ID do pedido
|
||||
customerId: string; // ID do cliente
|
||||
customerName: string; // Nome do cliente
|
||||
sellerId: string; // ID do vendedor
|
||||
sellerName: string; // Nome do vendedor
|
||||
billingId: string; // ID da forma de pagamento
|
||||
billingName: string; // Nome da forma de pagamento
|
||||
planId: string; // ID do plano de pagamento
|
||||
planName: string; // Nome do plano de pagamento
|
||||
amount: number; // Valor total do pedido
|
||||
installments: number; // Número de parcelas
|
||||
amountPaid: number; // Valor total pago
|
||||
}
|
||||
```
|
||||
|
||||
### PaymentDto
|
||||
```typescript
|
||||
interface PaymentDto {
|
||||
orderId: number; // ID do pedido
|
||||
payDate: Date; // Data do pagamento
|
||||
card: string; // Número do cartão
|
||||
installments: number; // Número de parcelas
|
||||
flagName: string; // Nome da bandeira
|
||||
type: string; // Tipo de pagamento
|
||||
amount: number; // Valor do pagamento
|
||||
userId: string; // ID do usuário
|
||||
nsu: string; // NSU da transação
|
||||
auth: string; // Código de autorização
|
||||
}
|
||||
```
|
||||
|
||||
## Códigos de Erro
|
||||
|
||||
| Código | Descrição |
|
||||
|--------|-----------|
|
||||
| 400 | Requisição inválida |
|
||||
| 401 | Não autorizado |
|
||||
| 403 | Acesso negado |
|
||||
| 404 | Recurso não encontrado |
|
||||
| 500 | Erro interno do servidor |
|
||||
|
||||
## Exemplos de Uso
|
||||
|
||||
### Exemplo de Requisição com cURL
|
||||
|
||||
```bash
|
||||
# Listar pedidos de uma loja
|
||||
curl -X GET "http://localhost:3000/api/v1/orders-payment/orders/001" \
|
||||
-H "Authorization: Bearer seu-token-jwt"
|
||||
|
||||
# Criar novo pagamento
|
||||
curl -X POST "http://localhost:3000/api/v1/orders-payment/payments/create" \
|
||||
-H "Authorization: Bearer seu-token-jwt" \
|
||||
-H "Content-Type: application/json" \
|
||||
-d '{
|
||||
"orderId": 12345,
|
||||
"card": "**** **** **** 1234",
|
||||
"auth": "A12345",
|
||||
"nsu": "123456789",
|
||||
"installments": 3,
|
||||
"amount": 1000.00,
|
||||
"flagName": "VISA",
|
||||
"paymentType": "CREDITO",
|
||||
"userId": 1
|
||||
}'
|
||||
Reference in New Issue
Block a user