这是我的问题:我们的一个客户想要通过在查询字符串中传递 action_name 来访问肥皂动作。可以用wash_out gem吗?
示例网址: http ://example.com/dummy_soap/action?action_name=do_something
任何帮助表示赞赏。
这是我的问题:我们的一个客户想要通过在查询字符串中传递 action_name 来访问肥皂动作。可以用wash_out gem吗?
示例网址: http ://example.com/dummy_soap/action?action_name=do_something
任何帮助表示赞赏。
有可能的。用于send
调用您想要的操作。请注意,这仅在其他操作render
在操作结束时显式调用时才有效。另外,不要相信 :action_name 参数。考虑在使用 :action_name 之前根据允许操作的白名单检查它,如果它无效则引发错误。
class DummySoapController < ApplicationController
soap_service namespace: 'urn:WashOut'
def action
send(params[:action_name])
end
soap_action "convert_to_string", :args => :integer, :return => :string
def convert_to_string
render :soap => params[:value].to_s
end
soap_action "convert_to_integer", :args => :integer, :return => :float
def convert_to_float
render :soap => params[:value].to_f
end
end
例如,要获取字符串值,您将使用 URL
http://example.com/dummy_soap/action?action_name=convert_to_string&value=1
或者得到一个浮动
http://example.com/dummy_soap/action?action_name=convert_to_float&value=1