...
Com o objetivo de auxiliar na migração do formato SOAP/XML para o formato REST/JSON, elaboramos este documento, no qual demonstramos a equivalência de conceitos entre os formatos. Entretanto, algumas tags presentes no formato SOAP/XML não foram migradas para o novo formato, sem um substituto equivalente, por se considerar que estavam por estarem em desuso ou não agregavam valorterem uma aplicação muito específica.
Formato SOAP/XML | Formato REST/JSON |
---|---|
Endpoints | |
http://<servidor>:<porta>/eai2-ws/EAIService?wsdl (DATASUL) http://<servidor>:<porta>/EAISERVICE.apw?wsdl (LOGIX/PROTHEUS) http://<servidor>:<porta>/EAIService/MEX?wsdl (RM)
| http://<servidor>:<porta>/totvseai/standardmessage/v1/transactions http://<servidor>:<porta>/totvseai/standardmessage/v1/content
|
Estrutura da mensagem | |
TOTVSMessage, composta de:
| Dois atributos principais:
|
Tags de MessageInformation X atributos de header | |
<MessageInformation version="2.000"> | "version" : "2.000" |
<UUID>d6bbfa63-ca27-e2ac-0b14-101970f59a5b</UUID> | "UUID" : "d6bbfa63-ca27-e2ac-0b14-101970f59a5b" |
<Type>BusinessMessage</Type> | "type" : "BusinessMessage" |
<Transaction>CostCenter</Transaction> | "transaction" : "CostCenter" |
<StandardVersion>1.000</StandardVersion> | Sem equivalente na mensagem. A versão do padrão será designada na URL do endpoint /totvseai/standardmessage/v1. |
<SourceApplication>P1299</SourceApplication> | "sourceApplication" : "P1299" |
<CompanyId>99</CompanyId> | "companyId" : "99" |
<BranchId>01</BranchId> | "branchId" : "01" |
<UserId>admin<UserID> | "userId" : "admin" |
<Enterprise></Enterprise> | Não será utilizado no formato REST/JSON |
<BusinessUnit></BusinessUnit> | Não será utilizado no formato REST/JSON. |
<CompanySharingMode>C</CompanySharingMode> | Não será utilizado no formato REST/JSON. |
<BusinessUnitSharingMode>C</BusinessUnitSharingMode> | Não será utilizado no formato REST/JSON. |
<BranchSharingMode>C</BranchSharingMode> | Não será utilizado no formato REST/JSON. |
<Product name="PROTHEUS" version="12.1.17" /> | "productName" : "PROTHEUS" "productVersion" : "12.1.17" |
<GeneratedOn>2017-11-15T12:00:30-02:00</GeneratedOn> | "generatedOn" : "2017-11-15T12:00:30-02:00" |
<DeliveryType>async</DeliveryType> | "deliveryType" : "async" |
Outras tags e suas equivalências no modelo REST/JSON | |
BusinessMessage/BusinessEvent | Atributo "subType" do header, com valor igual a "event". Ex: "subType" : "event". |
BusinessMessage/BusinessEvent/Entity | Utilizar o atributo "transaction" do header. |
BusinessMessage/BusinessEvent/Event | A operação será obtida do método HTTP usado no endpoint:
|
BusinessMessage/BusinessEvent/Identification | Não será utilizado no formato REST/JSON. Foi substituído pelos internalIds informados no conteúdo da mensagem. |
BusinessMessage/BusinessRequest | Atributo "subType" do header com valor igual a "request". Ex: "subType" : "request". |
BusinessMessage/BusinessRequest/Operation | Usar o atributo "transaction" do header. |
BusinessMessage/BusinessContent | Atributo "content". Todas as tags do XML correspondentes a BusinessContent devem ser convertidas em atributos JSON, sem qualquer modificação. |
ResponseMessage/ReceivedMessage e tags filhas. | Atributo "receivedMessage"´de content. Os atributos filhos são equivalências diretas das tags filhas de <ReceivedMessage>.
|
ResponseMessage/ProcessingInformation | Atributo "processingInformation" do content, quando a mensagem for do tipo "Response". As tags <ProcessedOn> e <Status> tem os atributos equivalentes "processedOn" e "status".
|
ResponseMessage/ProcessingInformation/ListOfMessages | Atributo "details" do processingInformation. |
ResponseMessage/ReturnContent | Atributo "returnContent". Todas as tags XML devem ser convertidas em atributos JSON. |
ReceiptMessage | Não existe mensagem de recibo no formato JSON. O indicativo de que a mensagem foi recebida é o código HTTP 202 (Accepted). |
...