Rails框架技术讲座:创建Rails框架的网络服务(Web Service)
Posted by cnruby Wed, 08 Mar 2006 18:14:00 GMT
Rails框架技术讲座:创建Rails框架的网络服务(Web Service)
目录
(一)系统环境:
- 软件语言 Ruby 1.8.2
- 软件框架 Rails 1.0.0
- 开发编辑工具 Notepad2
- SQLite 3.3.3
- SQLite-Ruby 1.1.0
- SQLite 3.x的可视化工具:SQLite Database Browser
(二)前提条件:
- 我们的工作目录为d:\works_rails。
- 我们需要一个浏览器,如FireFox,或者Flock
- 讲座"创建连接数据库SQLite 3.x的Rails网络应用软件"是本讲座的基础。
(三)目的:
- 借助于Action Web Service,创建和使用Rails框架的网络服务(Web Service)。
- 我们创建项目的完整代码 web_service.zip 。
(四)解决方案:
- 我们根据讲座"创建连接数据库SQLite 3.x的Rails网络应用软件"的方法:
- 来创建一个项目名称为web_service;
- 来创建开发、测试和产品三个数据库,它们的名称分别为webs_dev、webs_tst和webs_prd;
- 来修改我们Rails框架连接数据库SQLite的配置文件D:\works_rails\web_service\config\database.yml;
- 利用Rails框架的自动代码生成工具:
- 我们首先考虑我们的网络服务要做什么。假定我们可以让用户获取表lessons的所有记录或者按id寻找。
- 修改文件 environment.rb,为了我们的中文显示。
- 创建网络服务API定义类,告诉客户端用户如何调用我们的网络服务。
lesson_service_api.rb - 创建实现网络服务API的类,这是为网络服务提供的一种实现。
lesson_service_controller.rb - 测试一下我们网络服务是否正常,我们在浏览器地址栏中输入:
http://localhost:3000/lesson_service/service.wsdl
我们看到如下图所示,说明一切正常:
浏览器访问文件顺序为:
lesson_service_controller.rb
lesson_service_api.rb
lesson.rb - 最后,我们来使用这个网络服务。正如上述,我们可以通过一个Ruby客户端程序 client_lesson.rb 来获取表lessons数据记录,下面执行该程序,其命令如下:
client_lesson.rb
或者
client_lesson.rb > results.txt
文件client_lesson.rb编码最好使用utf-8。
我们用Notepad2来打开文件results.rb:
(四)视听教学:
- 喜道技术日记数字广播Beta RSS:
http://www.hhtong.com/blog1/files/rails.rss - 如何利用免费Apple iTunes收听"喜道技术日记数字广播"?
下载软件:http://www.apple.com/itunes/download/
安装软件:iTunes
收听喜道技术日记数字广播Beta:菜单| 高级(A)| 订购Podcast(P)...| 输入 http://www.hhtong.com/blog1/files/rails.rss - 德国之声中文数字广播RSS:
http://rss.dw-world.de/xml/podcast_radio_china
(五)必须注意的问题:
- 为什么我们在上面的DOS-Shell窗口看到乱码?
因为我们的文件client_lesson.rb编码是utf-8,所以标题文字是乱码。另外,从服务器传过来的内容编码也是utf-8。如果我们的文件client_lesson.rb改为使用编码ANSI(中文需要重新输入)的话,那么我们可以看到:
注意,我使用的操作系统是德文。 - 为什么我们会出现如下图片?

这个说明我们没有修改文件 environment.rb 。
(六)参考资料:
- Rails框架网络服务的基本概念:
http://manuals.rubyonrails.com/read/chapter/67 - Rails框架Action Web Service API:
http://rails.rubyonrails.com/files/vendor/rails/actionwebservice/README.html - 网络服务实例:
http://www.mindspring.com/~eric_rollins/rails/DwarvesOnRails.html
________________________________________________________________ 您只要点击下面图标,就可以把本文加入到您喜欢的公共收藏库中去。




















![Validate my RSS feed [Valid RSS]](/blog1/files/valid-rss.png)




