我正在使用SOAP API,它有两个操作,每个操作都需要API密钥和一堆其他属性。所以,我已经能够通过SOAPUI发出请求,但是我在使用savon gem(版本2)将其转换为ruby代码时遇到了麻烦。
这是searchTours请求的屏幕截图。
现在,如何使用Savon将其转换为ruby代码?我试过跟随,但它没有用。
client = Savon.client(wsdl: 'url goes here..')
client.operations #=> [:tour_details_full, :search_records]
message = {security_key: "SECURITYKEYS", attributes_one: "ValueOne", attribute_two: IntegerValue}
response = client.call(:search_records, message: message)
错误讯息:
Savon :: SOAPFault:(S:Client)找不到{url_here} SearchRecords的调度方法
答案 0 :(得分:0)
规范的回答:
答案 1 :(得分:0)
你必须做这样的事情:
class SearchTours
extend Savon::Model
client wsdl: 'your url',
namespaces: {
...
'xmlns:soapenv' => 'http://schemas.xmlsoap.org/soap/envelope/',
....
...#your namespacecs
}
operations :tour_details_full, :search_records
def self.tour_details_full
builder = Builder::XmlMarkup.new()#describe your request params
super message: builder
end
def self.search_records
builder = Builder::XmlMarkup.new()#describe your request params
super message: builder
end
end
#then you can call
SearchTours.search_records #=> []
您也可以使用此online tool来检查您的wsdl服务或请求