...
A mensagem padronizada, utilizando JSON como formato, será composta dos seguintes elementos:
headerHeader: contem informações equivalentes a tag MessageInformation, do formato XML. Os atributos JSON correspondentes seguem as mesmas convenções de obrigatoriedade do padrão original. As tags que não estão descritas aqui, a principio, não serão utilizadas.
contentContent: contem informações equivalentes a tag BusinessContent, para mensagens de negócio, ou a tag ReturnContent, para mensagens de resposta. Devido a isso, os atributos podem variar de acordo com a definição da transação. Quando a mensagem for de resposta, o atributo content terá ainda os seguintes atributos:
...
Bloco de código | ||
---|---|---|
| ||
{ "headerHeader" : { "UUID" : "d6bbfa63-ca27-e2ac-0b14-101970f59a5b", "typeType" : "BusinessMessage", "subTypeSubType" : "event", "transactionTransaction" : "CostCenter", "versionVersion" : "2.000", "sourceApplicationSourceApplication": "P1299", "productNameProductName" : "PROTHEUS", "productVersionProductVersion" : "12.1.17", "companyIdCompanyId" : "99", "branchIdBranchId" : "01", "generatedOnGeneratedOn" : "2017-11-14T11:47:00-03:00", "deliveryTypeDeliveryType" : "async", }, "contentContent" : { "CompanyId" : "99", "BranchId" : "01", "CompanyInternalId" : "99", "Code" : "ABC001", "InternalId" : "99|ABC001", "RegisterSituation" : "Active", "Name" : "Centro de Custo ABC001", "ShortCode" : "ABC001", "SPED" : true, "Class" : 2 } } |
...
Bloco de código | ||
---|---|---|
| ||
{ "headerHeader" : { "UUID" : "a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6", "typeType" : "Response", "subTypeSubType" : "event", "transactionTransaction" : "CostCenter", "versionVersion" : "2.000", "sourceApplicationSourceApplication" : "LGX12", "productNameProductName" : "LOGIX", "productVersionProductVersion" : "12.1.15", "generatedOnGeneratedOn" : "2017-11-14T11:47:15-03:00", "deliveryTypeDeliveryType": "async" }, "contentContent" : { "receivedMessageReceivedMessage" : { "UUID" : "d6bbfa63-ca27-e2ac-0b14-101970f59a5b", "sentBySentBy" : "P1299", "eventEvent" : "upsert" }, "processingInformationProcessingInformation" : { "processedOnProcessedOn" : "2017-11-14T11:47:15-03:00", "statusStatus" : "ERROR", "detailsDetails" : [ { "codeCode" : "FE001", "messageMessage" : "Mensagem padrão no formato incorreto.", "detailedMessageDetailedMessage" : "" }, { "codeCode" : "AE004", "messageMessage" : "Empresa não configurada para integração.", "detailedMessageDetailedMessage" : "" } ] }, "returnContentReturnContent" : { "listOfInternalIDListOfInternalID" : [ { "nameName" : "CostCenter", "originOrigin" : "99|ABC001", "destinationDestination" : "10|1000" }, { "nameName" : "Company", "originOrigin" : "99", "destinationDestination" : "10" } ] } } } |
O padrão REST/JSON fornece também um modelo para lote de mensagens, onde as mensagens são agrupadas em um array JSON, de nome items.
Bloco de código | ||
---|---|---|
| ||
{ "itemsItems" : [ { "headerHeader" : { "UUID" : "", "typeType" : "", "subTypeSubType" : "", "transactionTransaction" : "customerVendor", "versionVersion" : "2.001", "sourceApplicationSourceApplication": "", "productNameProductName" : "", "productVersionProductVersion" : "", "generatedOnGeneratedOn" : "", "deliveryTypeDeliveryType" : "async", }, "contentContent" : { "atributo1Atributo1" : "", "atributo2Atributo2" : "", ... "atributoNAtributoN" : "" } },{ "headerHeader" : { "UUID" : "", ... "transactionTransaction" : "item", "versionVersion" : "3.001", ... "deliveryTypeDeliveryType" : "async" }, "contentContent" : { "atributo1Atributo1" : "", "atributo2Atributo2" : "", ... "atributoNAtributoN" : "" } } ] } |
O uso do formato de lote de mensagens tem algumas considerações importantes:
...
O desenho de uma transação, no formato REST/JSON, deve utilizar o formato Swagger/OpenAPI, em substituição ao formato XML Schema, utilizado na implementação originalSOAP/XML. Para mais informações sobre como implementar um documento Swagger, consulte a especificação própria do padrão.