我正在使用Savon gem访问SOAP API。问题是,API需要大写的键和小写的其他键,所以我不能使用选项convert_request_keys_to
参数。
这是我需要遵守的API的格式:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xs="XmlServices">
<soapenv:Header/>
<soapenv:Body>
<xs:GetRooms>
<xs:request>
<xs:Credentials>
<xs:Credential1>"example1"</xs:Credential1>
<xs:Credential2>"example2"</xs:Credential2>
<xs:Credential3>"example3"</xs:Credential3>
</xs:Credentials>
</xs:request>
</xs:GetRooms>
正如您所看到的,request
是小写的,其余的都是大写的。
这就是我使用gem的方式:
def call(method, attributes = nil)
attributes = { 'request': { 'Credentials': attributes } }
response = client.call(method, message: attributes)
#do something with response
end
我称之为正确吗?我有什么选择吗?我是否需要自己分叉存储库并修改gem?
答案 0 :(得分:1)
好的,实际上这很简单:
只需使用选项convert_request_keys_to :none