Árvore de páginas

Este método é responsável por receber todas as mensagens que o Commercehub ira processar.

  • Endpoint: 
    • /api/fila/publish
    • /api/fila/v1/publish
  • Método: Post
  • Autenticação: Bearer token
  • Permissão: Retaguarda
  • Microserviço: PDVSync.Core.Fila


Funcionamento

Este endpoint aceita uma lista de mensagens de qualquer tipo e as envia para os microserviços responsáveis. Para garantir flexibilidade, você pode passar os atributos necessários tanto por query params quanto no body da requisição.


1. Via query params

Use quando não for possível ou não fizer sentido incluir esses campos no payload.

Exemplo:

POST /api/fila/v1/publish?
  idInquilino=VOModa&
  idProprietario=1&
  codigoTipoLote=1&
  versaoTipoDado=2&

  tipo='Generico'
Content-Type: application/json
Authorization: Bearer <token>
[]


2. Via body

Use quando o payload já contém todos os atributos e não há necessidade de expô-los na URL.

POST /api/fila/v1/publish
Content-Type: application/json
Authorization: Bearer <token>

{
  "idInquilino": "VOModa",
  "idProprietario": 1,
  "conteudo": [...],
  "hashConteudo": "...",
  "codigoTipoLote": 1,       
  "versaoTipoDado": 2,       
  "tipo": "abobrinha"        
}

Parâmetros obrigatórios

  • idInquilino
  • idProprietario
  • codigoTipoLote ou tipo 


Parâmetros condicionais

  • versaoTipoDado - caso nao seja enviado, será incluido 1 quando codigoTipoLote preenchido.


Regras de enfileiramento

  1. Tipo de lote conhecido
    • codigoTipoLote 
    • versaoTipoDado 
  1. Contrato novo ou tipo desconhecido
    • Enviar apenas tipo.
    • Uma nova fila será criada com esse nome.

Dessa forma, integradores têm total liberdade para escolher o formato de envio que melhor se encaixa em sua necessidade.

    Requisição

    Exemplo de body da requisição

    [
        {
            "tipo": "GENERICO",
            "chave": "",
            "tabela": "",
            "conteudo": "W3siSWRJbnF1aWxpbm8iOiIyMTIiLCJJZFByb3ByaWV0YXJpbyI6IjEiLCJJZFJldGFndWFyZGEiOiIxMTA3MjAyNSIsIkxvdGVPcmlnZW0iOiIyMDI1MDcxNjIwMDg0ODA5NyIsIk5vbWUiOiJBZHJpYW5hIEFwYXJlY2lkYSBEdWFydGUiLCJFbmRlcmVjbyI6IlJ1YSBFdXJvcGEiLCJOdW1lcm8iOiI3NjQiLCJDb21wbGVtZW50byI6IkNhc2EiLCJCYWlycm8iOiJQb2xvY2VudHJvIEkiLCJDaWRhZGUiOiJBbsOhcG9saXMiLCJFc3RhZG8iOiJHTyIsIkNlcCI6Ijc1MTMwMTgwIiwiVGVsZWZvbmUiOiI2MjM1NDM0NTk4IiwiQ2VsdWxhciI6IjYyOTk1MzY1NjcxIiwiRW1haWwiOiJhZHJpYW5hX2R1YXJ0ZUB0YW0uY29tLmJyIiwiRGF0YU5hc2NpbWVudG8iOiIxOTc0LTEwLTI1IiwiU2l0dWFjYW8iOjEsIlBlc3NvYUZpc2ljYSI6MCwiQ3BmQ25waiI6IjU2NzQ2Mjc3NDYxIiwiUmdJbnNjcmljYW8iOiI0NDkwNTM4NTQiLCJTZXhvIjoxLCJFc3RhZG9DaXZpbCI6MiwiQXZhdGFyVXJsIjoiIiwiRW52aWFycG5ldCI6MSwiQXRpdmlkYWRlIjoibWVkaWNhIiwiQ3JhY2hhIjoiIiwiSWRSZXRhZ3VhcmRhUHJvZmlzc2lvbmFsIjoiIiwiSWRSZXRhZ3VhcmRhQ2xpZW50ZVByaW5jaXBhbCI6IiIsIklkUmV0YWd1YXJkYVJhbW9BdGl2aWRhZGUiOiIiLCJJZFJldGFndWFyZGFSZWdpYW8iOiIiLCJJZFJldGFndWFyZGFQcmFjYSI6IiIsIklkUmV0YWd1YXJkYVJlZGVDbGllbnRlIjoiIn1d",
            "idInquilino": "PDVSyncDanilo",
            "HASHConteudo": "f10b7aa70ac7d2ff01a241037b644df8",
            "codigoTipoLote": null,
            "idProprietario": "1",
            "versaoTipoDado": 1
        }
    ]

    Definições dos campos do body

    Campo

    Tipo

    Descrição

    Obrigatorio

    Observações

    tipo

    string

    Tipo do Dado (Descrição)

    Sim
    chave string Chave da tabela ERP Não
    tabela datetime Tabela do ERP Não
    conteudo string conteudo do dado  Não Conteudo em 64bytes do dados 
    idProprietario string Identificador do proprietário Sim

    Enviar apenas o proprietário da loja. 

    Este campo não é uma lista e não aceita mais de um proprietário.

    idInquilino string Identificador do inquilino  Sim
    HASHConteudo string Hash md5 do conteudo Sim
    codigoTipoLote int Codigo Tipo Lote Sim Codigo especifico (FrontEnd)
    versaoTipoDado int Versao do Tipo Dado  Não Versao especifica (FrontEnd)"

    Retorno

      Exemplo de body de retorno

      {
          "success": true,
          "message": "Requisição inserida com sucesso!",
          "data": null,
          "errors": null,
          "totalTime": 0,
          "numberOfRecords": 0
      }

      Definições dos campos do retorno

      Campo

      Tipo

      Descrição

      Success bool Indica se a criação do compartilhamento foi feita com sucesso
      Message string Caso ocorra erros durante a criação do compartilhamento eles serão enviados nesse campo
      Data objeto Objeto compartilhamento criado
      Errors Lista Listas com os erros encontrados no processo
      TotalTime int tempo da requisição
      NumberOfRecords int número de dados inseridos

      Exemplo de body de retorno

      {
          "code": "string",
          "message": "string",
          "detailedMessage": "string",
          "helpUrl": "string",
          "details": [
              {
                  "guid": "string",
                  "code": "string",
                  "message": "string",
                  "detailedMessage": "string"
              }
          ]
      }

      Definições dos campos do retorno

      Campo

      Tipo

      Descrição

      code string Código de erro
      message string Mensagem do erro
      detailedMessage string Detalhamento do erro
      helpUrl string url de ajuda
      TotalTime string Tempo total de busca
      details lista de objeto Lista de objeto de erros
      details.guid string Identificador do erro
      details.code string Código do erro
      details.message string Mensagem do erro 
      details.detailedMessage string Detalhamento do erro



      • Sem rótulos