Репликация XML-запроса с Savon / Ruby
Я пытаюсь избежать использованияNokogiri/Builder
чтобы построить мой XML и хотел бы вместо этого использоватьSavon
драгоценный камень с Ruby 2.0.0. У меня есть следующий запрос, который мне нужно повторить:
<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<GetList xmlns="http://tempuri.org/">
<listRequest xmlns:a="http://schemas.datacontract.org/2004/07/Services.List"
i:type="b:NpsListRequest"
xmlns:i="http://www.w3.org/2001/XMLSchema-instance"
xmlns:b="http://schemas.datacontract.org/2004/07/Services.List.Strategies">
<a:id>1</a:id>
</listRequest>
</GetList>
</s:Body>
</s:Envelope>
Пока у меня есть это:
def soap_client
soap_client = Savon.client(
wsdl: "http://10.10.10.10/ListApi.svc?wsdl"
headers: {"Authorization" => "Basic"},
basic_auth: ['username', 'password'],
env_namespace: :s,
ssl_verify_mode: :none,
log: true,
:pretty_print_xml => true
)
end
затемsoap_client.call :get_list, message: {'id' => 1}
который возвращает это:
<s:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tns="http://tempuri.org/"
xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
<s:Body>
<tns:GetList>
<id>1</id>
</tns:GetList>
</s:Body>
</s:Envelope>
Я не могу понять, как точно повторить первый запрос.tns:
пространство имен наGetList
неправильно, и я не могу воспроизвести<listRequest xmlns:a =
штука тоже. Любые мысли о том, как сделать это в Савоне?