新手问题 Rails Web Service 要有 SOAP 的添加哪种好?washout 怎么样?

safir · 2016年02月22日 · 最后由 safir 回复于 2016年03月03日 · 2024 次阅读

大家好, 刚接触 ruby,本来是要 rails restful重做c#soap的后台的,但是当我api做出来发现前台的接口需要很大的改动,想把rails做成soap的这样好吗OTZ。。。 还有我完全不知道 soap 是什么鬼,用了 restful,感觉 soap 好复杂啊。该如何学习它?

能不用就不用 soap 吧,washout 第一句话就是如果你有机会,就别用 soap。 你现在有机会。。

#1 楼 @nainc 谢谢,o(╯□╰)o

真要用的话 soap 客户端可以用 savon

#3 楼 @huacnlee 谢谢,我也搜过只看到一个 wash_out 可用。

#4 楼 @alucardpj 然而要做的是 server。

感觉用rails弄soap替代c#不是什么好主意。

哪位大大用过 wash_out 我在 soap action 需要 return Staff 类 在 def 中 用 find_by 找到@staff 然后 render :soap=>[@staff] 但是会报 WashOut::Dispatcher::ProgrammerError (SOAP response used # (which is Staff), in the context where a Hash with key of 'staff_no' was expected.): 如果不对@staff添加 [ ] 那么会报 WashOut::Dispatcher::ProgrammerError (SOAP response tried to use '#' (which is of type Staff), as the value for 'value' (which expects an Array).):

该如何写 render?

#8 楼 @safir 我后来在 return 上把需要的类型格式放上去,在 render 上输出相同的格式。。。感觉好傻的样子~

#9 楼 @safir 发现类型重复用的时候会有重复类型的错误,将重复的类型(非数据库)自定义为 WashOut::Type 然后就能用了,注意 rails 的命名规范,因为前台已有的关系,这货坑了我很久、

需要 登录 后方可回复, 如果你还没有账号请 注册新账号