Documentação da API (Endpoints)
Este documento descreve as rotas, parâmetros esperados e formatos de resposta da API do sistema G4G.
Autenticação
A API utiliza dois métodos de autenticação, dependendo da versão da rota acessada:
- Rotas Internas: JWT (JSON Web Token).
- Rotas v1: API Key.
Login (JWT)
- URL:
/api/internal/users/sign_in - Método:
POST - Parâmetros (Body):
JSON
{
"user": {
"email": "user@example.com",
"password": "password"
}
}
- Resposta (Sucesso): Cabeçalho
Authorization: Bearer <token>e corpo com dados do usuário.
Logout (JWT)
- URL:
/api/internal/users/sign_out - Método:
DELETE - Resposta:
204 No Content
API Interna (/api/internal)
Nota: Todas as rotas abaixo exigem o cabeçalho Authorization: Bearer <token>, exceto se especificado o contrário.
Categorias (/categories)
- GET
/api/internal/categories- Query Params:
type(Setor, Grupo, Subgrupo, Familia, Atributo, Produto),only_root(boolean),q,discarded. - Descrição: Lista categorias ou árvore hierárquica.
- Query Params:
- POST
/api/internal/categories- Parâmetros:
type,name,category_id(pai),identifier.
- Parâmetros:
- PUT/PATCH
/api/internal/categories/:id- Parâmetros:
type,name,category_id,identifier.
- Parâmetros:
- DELETE
/api/internal/categories/:id- Descrição: Remove (descarta) uma categoria.
- PATCH
/api/internal/categories/:id/restore- Descrição: Restaura uma categoria descartada.
Contratos (/contracts)
- GET
/api/internal/contracts- Query Params:
q,discarded,initial_date,final_date,product_ids[],supplier_ids[].
- Query Params:
- POST
/api/internal/contracts- Parâmetros:
description,contract_id,start_date,end_date,supplier_id,product_id,budget,budget_type, vinculação de IDs (sector_ids[],store_ids[],brand_ids[], etc).
- Parâmetros:
- GET
/api/internal/contracts/:id - DELETE
/api/internal/contracts/:id
Clientes (/clients)
- POST
/api/internal/clients- Parâmetros:
subdomain,user: { email, name, city_id, phone, password, password_confirmation }. - Descrição: Provisiona um novo tenant e o usuário administrador.
- Parâmetros:
- GET
/api/internal/clients/current- Descrição: Dados do cliente/tenant logado.
Pedidos (/orders)
- GET
/api/internal/orders- Query Params:
page,limit,initial_date,final_date, filtros de categoria e geográficos.
- Query Params:
- POST
/api/internal/orders- Parâmetros:
date,pdv,store_id,sale_number,items_attributes: [{ product_id, cost, quantity, taxes, total, value }].
- Parâmetros:
- Ações Customizadas:
- GET
/api/internal/orders/result: Resultados consolidados. - GET
/api/internal/orders/assortment: Mix de produtos. - GET
/api/internal/orders/rentability: Rentabilidade.
- GET
Produtos (/products)
- GET
/api/internal/products: Listagem com filtros e paginação. - POST
/api/internal/products: Cadastro de SKU, EAN, Unidade, Família e Fornecedor. - PUT/PATCH/DELETE
/api/internal/products/:id
Importações (/imports)
- POST
/api/internal/imports: Upload de arquivo viamultipart/form-data. - PUT
/api/internal/imports/:import_id/import_items/bulk_update- Descrição: Atualização em lote de itens importados.
API v1 (/api/v1)
Estas rotas são destinadas a integrações externas e utilizam API Key.
- Autenticação: Cabeçalho
Authorization: Bearer <API_KEY>. - Pedidos (
/api/v1/orders): Espelha as funcionalidades deindex,show,create,update,destroyerestore. - Produtos (
/api/v1/products): Espelha as funcionalidades deindex,show,create,update,destroyerestore.
Outras Rotas
- GET
/api/internal/states: Lista estados e cidades. - GET
/api/internal/units: Lista unidades de medida. - GET
/api/internal/suppliers: Lista fornecedores cadastrados. - GET
/api/internal/users/verify_token: Validação de sessão JWT.
