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.
  • POST /api/internal/categories
    • Parâmetros: type, name, category_id (pai), identifier.
  • PUT/PATCH /api/internal/categories/:id
    • Parâmetros: type, name, category_id, identifier.
  • 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[].
  • 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).
  • 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.
  • 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.
  • POST /api/internal/orders
    • Parâmetros: date, pdv, store_id, sale_number, items_attributes: [{ product_id, cost, quantity, taxes, total, value }].
  • Ações Customizadas:
    • GET /api/internal/orders/result: Resultados consolidados.
    • GET /api/internal/orders/assortment: Mix de produtos.
    • GET /api/internal/orders/rentability: Rentabilidade.

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 via multipart/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 de index, show, create, update, destroy e restore.
  • Produtos (/api/v1/products): Espelha as funcionalidades de index, show, create, update, destroy e restore.

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.