新手问题 Rails 如何解决类似 .NET 搭建的 WebService 应用,如何为其他端程序 (Android) 提供统一的 API 接口?

pinewong · 发布于 2016年04月29日 · 最后由 alvin2ye 回复于 2016年05月01日 · 1219 次阅读
24405

事情是这样的,学校工程实训的课程是“SOA和WebService”,教学用的是c#,我现在想用rails做出一些类似的东西。

通过搜索,看到论坛三年前的一篇帖子:https://ruby-china.org/topics/4671

感觉都是泪啊,三年前你们就不用的东西,我们现在正在教!

现在说说具体问题: 我现在有个网站和一个Android程序,现在要用Rails再开发一个类似课程里的WebService的东西,然后用我的网站和Android程序通过一个uri调用完成一些数据存取简单操作,如果现在Rails不用WebService实现,那该怎么实现?上述帖子里看到管理员回答的将Rails应用设计成RESTful的方式提供WebServices,我不是能太理解,有没有师兄师姐解释清点的,或者告诉我下哪里有简单的例子,谢谢大家!

共收到 13 条回复
4755

WebServices 只是一个大的概念,表示通过 Web 的方式对外提供服务。SOAP 或者 REST 都是具体实现的协议或者风格。2002 年的时候,当时的 Web Service 特指基于 SOAP 协议的架构风格,这个概念是当时的 W3C Web Service 工作组定义的;但是时过境迁,到了 2004 年,W3C 扩展了这个定义,认为 Web Service 可以分为两类,其中一类是以 REST 风格为代表,另一类则很宽泛,没有特别明确限制,只要是:

Arbitrary Web services, in which the service may expose an arbitrary set of operations

关于 Web Service ,可以阅读维基百科的词条: Web service

如果你的安卓应用是全新的,那就直接按照 Rails 的规范开发就是正确方向了!

24405

#1楼 @martin91 谢谢解答!这是说用Rails做多个程序的共用部分,也是按正常开发就行吗?

4755

#2楼 @pinewong 多个程序的共用部分?你不是只是为了服务器给移动客户端提供服务吗?

26227

这坟挖得也太那啥了。。。

24405

#3楼 @martin91 不是,我还有个现成的网站,也想用这个服务。我想问的就是Rails开发这种服务,是不是跟普通WEB程序开发流程一样,如果不一样,该怎么弄。

26227

各大银行的接口还是那种老式的soap。。。

4755

#5楼 @pinewong 没懂。。。

24405

#7楼 @martin91 因为没有实际开发经验,表述可能不对!哈哈,你尽可能站新人的角度再帮我看看。

我已经有一个Web程序和一个Android程序(以后可能还有iOS端、OS X端,可以理解为已经有了一系列平台的程序),他们现在有一个待开发的功能,这个功能各个程序的需求基本一致,所以我现在就想再开发第三个程序(这里我接下来把他叫做服务,因为它不完整,主要给我的其他程序引用),这个服务如果用.net开发,就是一个WebService服务。

现在我用Rails来开发这个服务,来简化我多个程序的开发工作。问题就是这个叫服务的东西的开发流程是跟普通Rails开发Web程序一样吗?还是要特殊对待,添加插件什么的?

25127

用grap这个gem包开发api

15139

Web服务,能用API走Web调用的服务就叫Web服务。 话说SOA和SOAP是两个东西哦,一个是 Service-Oriented Architecture 一个是 Simple Object Access Protocol。 以前用SOAP是因为XML那时候非常火热,啥都要往那个上面靠一下。 现在则普遍认为XML对于小型应用来说太重了,徒增代码量,相当于更轻量级的实现(例如Restful)来说没有很大的提升,所以就渐渐少用了。

15420

很显然 你们学校做的 “学校工程实训” 就是扯犊子的事情。可以想象,是拿十年前不变的东西又教授一遍给学生。理论知识不会变,然而 实训应该是结合实际的,还不如结合现在的发展实际,教授更新的知识给学生

24405

#9楼 @bocai 我要怎么查grap这个gem的中文文档?找了一下,没找到

96

前端时间刚刚写过1个.

用Rails 2.3 的 rubyjedi-actionwebservice gem 生成 wsdl 然后把 wsdl 放到最新版的rails里直接用即可

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