我正在使用wash-out gem (https://github.com/inossidabile/wash_out)来公开SOAP服务。
洗出文档的示例用法如下:
# Params from XML attributes;
# e.g. for a request to the 'AddCircle' action:
# <soapenv:Envelope>
# <soapenv:Body>
# <AddCircle>
# <Circle radius="5.0">
# <Center x="10" y="12" />
# </Circle>
# </AddCircle>
# </soapenv:Body>
# </soapenv:Envelope>
soap_action "AddCircle",
:args => { :circle => { :center => { :@x => :integer,
:@y => :integer },
:@radius => :double } },
:return => nil, # [] for wash_out below 0.3.0
:to => :add_circle
def add_circle
circle = params[:circle]
Circle.new(circle[:center][:x], circle[:center][:y], circle[:radius])
render :soap => nil
end但是我的XML请求有许多嵌套的参数,并且我不想为每个XML属性定义映射(:args)。有没有办法将XML请求(XSD)映射到ruby散列到soap操作所需的格式中:args。
发布于 2018-02-20 22:16:34
如果不将每个嵌套属性逐个映射到ruby对象,我不知道有什么方法可以做到这一点,但是您可以尝试使用xml-mapping gem并尝试测试您想要的东西。
https://stackoverflow.com/questions/48882977
复制相似问题