Rails Rails 发布 WebService

Fred · 2012年08月01日 · 最后由 76521 回复于 2018年12月13日 · 7269 次阅读

HI,大家好 现在项目用的 rails3,需要对外发布 webservice,曾经试着用 actionwebserice,但是发现相关插件版本只支持到 rails2,在 rails3 上不适用。 大家有什么好的插件,或更好的方式,推荐下。谢了先。

干嘛不用 RESTful ? WebService 是硬性要求么?

savon 是不二之选 savon 好像只用于客户端

谢谢 huacnlee 的回复。 webservice 并不是硬性要求,但是系统本身要与其它的异构应用打交道,如 java,C#,PHP 等,感觉 webservice 标准一点

二楼能不能说的详细点,或者有什么文章推荐下 这个度娘没找到呀

如果你需要跟其他异构系统打交道,我建议下面两个方式:

  • 如果这些异构系统都是在你们自己得一个大系统内部,那么尽量用消息中间件来解决异构系统交互,比如用 ActiveMQ 或者 Camel。
  • 如果这些异构系统都是外部系统,应将 Rails 应用设计成 RESTful 的方式提供 WebServices,然后想办法实现一些中间层将异构系统的消息先翻译成 RESTful 的消息然后在跟 Rails 应用交互。

说到 Java/.Net 上常用的基于 SOAP 协议的 WebService,这些是毁人不倦的东西,如果一定要给出建议的话,我的建议是辞职,然后找下一份有趣的工作并乐在其中。

匿名 #6 2012年08月01日

#5 楼 @lgn21st 你这个建议太狠了

我们这边都是与外部系统打交道的。 我来尝试下用 RESTfull 的方式吧。

#7 楼 @Fred RESTfull 才是标准,现在各大平台的 API 都是用 RESTfull like 的方式来实现的,WebService 那种 XML 的数据传输方式太冗余了

#5 楼 @lgn21st 我觉得需要消息中间件的时候,还不如直接上 Erlang。

用 XML-RPC 或者 Java 的 RMI 之类的试试?

Rails 自带 ActiveResource 的组件,适合来开发 RESTful 的 WebService。

#5 楼 @lgn21st 辞职太狠了,webservice 还是有需求的,比如我现在做的一个项目,我们的仓库系统需要扫描终端,使用扫描终端直接提交数据到服务器,目前的扫描终端绝大多数都是用 WinCE 系统,给我们做终端软件的公司就是要求一定要提供 WebService 的接口,不然就做不了,问了好多家都是同样的要求,一定要有 webservice,这种情况下,只能提供 webservice 了。

#12 楼 @yzhrain 理解你的情况。

我第一份 Ruby 的工作也是作类似的项目,跟支付网管打交道,也是 webservice,因为耗费了大量的时间精力折腾 soap4r 未果,后来完全用字符串拼接 xml 和 hpricot parse 的方式跟网关交互。做了一年就作不下去了,现在回头想想,当时决定辞职换工作的决定是对的。

我的建议是用.net WCF,然后用 WCF 包 WebService,然后暴露成 Restful API 给 Rails 用,或者相反,.NET 调用 Restful API,暴露 Web Service(呃,貌似不是 Rails 的方法了……)

@lgn21st 那些年没有 WCF,不然你就不会因为这个辞职了 😄 😄

提供 Resting api 接口,用 java 吐

Robbin 提到 Rails 的 action pack 有性能瓶颈啊,http://robbinfan.com/blog/40/ruby-off-rails

是不是和手机的接口部分需要另起炉灶替换 actionpack?

yzhrain 回复

请问你是怎么给他们提供的?可以借鉴下不

Fred Rails 3 Rendering XML 提及了此话题。 04月03日 10:56
需要 登录 后方可回复, 如果你还没有账号请 注册新账号