URL-адрес конечной точки выглядит следующим образом (не фактический URL) https://webservices.abcde.com/ThirdParty/PostData.V55.ashx/ProcessRequest
У него нет WSDL, и в документации приведен пример XML-запроса.
Это огромный,Я добавляю первые пару строк из этого ниже.
<MESSAGE xmlns:agentnet="http://services.abcde.com/entity/agentnet/v2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns="http://www.mismo.org/residential/2009/schemas/v32">
<ABOUT_VERSIONS>
<ABOUT_VERSION>
<AboutVersionIdentifier>ClientSystem</AboutVersionIdentifier>
<DataVersionIdentifier>1.0</DataVersionIdentifier>
<DataVersionName>ASDFSFD</DataVersionName>
</ABOUT_VERSION>
</ABOUT_VERSIONS>
<DEAL_SETS>
<DEAL_SET>
<DEALS>
<DEAL>
<PARTIES/>
<SERVICES>
<SERVICE>
<SERVICE_PRODUCT>
<SERVICE_PRODUCT_REQUEST>
<EXTENSION>
<OTHER>
<agentnet:AGENTNET_PRODUCT_REQUEST>
<agentnet:AgentNetServiceType>GET_DATA</agentnet:AgentNetServiceType>
<agentnet:AGENTNET_GET_DATA>
<agentnet:GetRequestType>ACCOUNTS</agentnet:GetRequestType>
</agentnet:AGENTNET_GET_DATA>
</agentnet:AGENTNET_PRODUCT_REQUEST>
...
...
...
...
... (the XML is huge)
С другими конечными точками я смог использовать библиотеку SOAP, такую как savon
, для генерации полезной нагрузки XML с использованием небольшого Ruby Hash (словаря).
Я полагаю, это было возможно, потому что это были WSDL?
Можно ли было бы генерировать полезную нагрузку таким же образом, передавая только некоторые важные данные (например, GET_DATA
и ACCOUNTS
в примере), или я должен вручную создавать строки полезной нагрузки XML вручную (может быть, с использованием некоторой библиотеки XML)?
Я действительно хочу избегать ручного создания полезных нагрузок XML, так как код не будет читаемым и его будет трудноработать в общем. Есть ли способ избежать этого?