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
FuncionamentoEste 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 paramsUse 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& Content-Type: application/json Authorization: Bearer <token> []
2. Via bodyUse 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, // opcional "versaoTipoDado": 2, // opcional "tipo": "abobrinha" // opcional } Parâmetros obrigatórios- idInquilino
- idProprietario
- conteudo
- hashConteudo
Parâmetros condicionais- codigoTipoLote
- versaoTipoDado
- tipo
Regras de enfileiramentoTipo de lote conhecido
- Enviar codigoTipoLote e versaoTipoDado.
- 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. | Deck of Cards |
|---|
| | Card |
|---|
| Requisição| Section |
|---|
| Column |
|---|
| Exemplo de body da requisição[
{
"tipo": "GENERICO",
"chave": "",
"tabela": "",
"conteudo": "W3siSWRJbnF1aWxpbm8iOiIyMTIiLCJJZFByb3ByaWV0YXJpbyI6IjEiLCJJZFJldGFndWFyZGEiOiIxMTA3MjAyNSIsIkxvdGVPcmlnZW0iOiIyMDI1MDcxNjIwMDg0ODA5NyIsIk5vbWUiOiJBZHJpYW5hIEFwYXJlY2lkYSBEdWFydGUiLCJFbmRlcmVjbyI6IlJ1YSBFdXJvcGEiLCJOdW1lcm8iOiI3NjQiLCJDb21wbGVtZW50byI6IkNhc2EiLCJCYWlycm8iOiJQb2xvY2VudHJvIEkiLCJDaWRhZGUiOiJBbsOhcG9saXMiLCJFc3RhZG8iOiJHTyIsIkNlcCI6Ijc1MTMwMTgwIiwiVGVsZWZvbmUiOiI2MjM1NDM0NTk4IiwiQ2VsdWxhciI6IjYyOTk1MzY1NjcxIiwiRW1haWwiOiJhZHJpYW5hX2R1YXJ0ZUB0YW0uY29tLmJyIiwiRGF0YU5hc2NpbWVudG8iOiIxOTc0LTEwLTI1IiwiU2l0dWFjYW8iOjEsIlBlc3NvYUZpc2ljYSI6MCwiQ3BmQ25waiI6IjU2NzQ2Mjc3NDYxIiwiUmdJbnNjcmljYW8iOiI0NDkwNTM4NTQiLCJTZXhvIjoxLCJFc3RhZG9DaXZpbCI6MiwiQXZhdGFyVXJsIjoiIiwiRW52aWFycG5ldCI6MSwiQXRpdmlkYWRlIjoibWVkaWNhIiwiQ3JhY2hhIjoiIiwiSWRSZXRhZ3VhcmRhUHJvZmlzc2lvbmFsIjoiIiwiSWRSZXRhZ3VhcmRhQ2xpZW50ZVByaW5jaXBhbCI6IiIsIklkUmV0YWd1YXJkYVJhbW9BdGl2aWRhZGUiOiIiLCJJZFJldGFndWFyZGFSZWdpYW8iOiIiLCJJZFJldGFndWFyZGFQcmFjYSI6IiIsIklkUmV0YWd1YXJkYVJlZGVDbGllbnRlIjoiIn1d",
"idInquilino": "PDVSyncDanilo",
"HASHConteudo": "f10b7aa70ac7d2ff01a241037b644df8",
"codigoTipoLote": null,
"idProprietario": "1",
"versaoTipoDado": 1
}
]
|
| Column |
|---|
| Definições dos campos do bodyCampo | Tipo | Descrição | Obrigatorio | Observações |
|---|
tipo | string | Tipo do Dado (Descrição) | Não |
| | chave | string | Chave da tabela ERP | Não |
| | tabela | datetime | Tabela do ERP | Não |
| | conteudo | string | conteudo do dado | Sim | 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 | Não | Codigo especifico (FrontEnd) | versaoTipoDado | int | Versao do Tipo Dado | Não | Versao especifica (FrontEnd)" |
|
|
Retorno| Deck of Cards |
|---|
| | Card |
|---|
| | Column |
|---|
| Exemplo de body de retorno{ "success": true, "message": "Requisição inserida com sucesso!", "data": null, "errors": null, "totalTime": 0, "numberOfRecords": 0 } |
| Column |
|---|
| Definições dos campos do retornoCampo | 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 |
|
|
| Card |
|---|
| | Column |
|---|
| Exemplo de body de retorno{ "code": "string", "message": "string", "detailedMessage": "string", "helpUrl": "string", "details": [ { "guid": "string", "code": "string", "message": "string", "detailedMessage": "string" } ] } |
| Column |
|---|
| Definições dos campos do retornoCampo | 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 |
|
|
|
|
|
|