与Rails REST亲密接触 RailsRESTXMLRubyMySQL
程序员文章站
2024-01-12 08:02:58
...
Rails 1.2发布,其中最受瞩目的就是REST(Representational State Transfer)。
Rails REST特性可以让Web服务技术用平*立或编程语言独立的方式相互通信,各个不同应用程序之间的远程过程调用从来都是相当麻烦,今天试用了一下REST,相比SOAP 和 WSDL 的确非常简洁好用。现在能够领会DHH在Rails的演讲中说的:“我不认为Rails应该向外部世界屈服,恰恰相反,Rails正在有力地让外部世界向我们屈服。”这是狂,不过DHH也有资格狂!
下面开始试用REST.
1.建一个friends的表(不废话mysql内容)
2.运行ruby script/generate scaffold friends,生成脚手架代码(不废话rails开发最基本的东东)
3.修改friends list函数改为:
respond_to接受wants请求,根据不同请求返回结果
4.输入测试代码。test.rb
注意Accept的定义是'text/xml',Rails将根据请求将xml发送给用户,缺省是rhtml的缺省显示。
5.运行ruby test.rb
就得到XML结果。REST继承Rails的风格,世界如此简单!
Rails 路由器根据 URL 模式把请求路由给控制器,
比如friends表的list查询就是http://localhost:3001/friends/list把list操作发送给通过控制器friends,得到结果。直接用TCP/IP 命名就可以定位资源。
用 HTTP 查询和操纵这些资源,Rails根据不同的HTTP ACCEPT头部来判断用户需要的数据,在控制器friends内,list可以根据不同的请求返回对应的结果。
使用基于文本的标准消息格式(例如 XML 或 HTML)来构造数据,Rails用一个to_xml来构造XML数据。
可以通过curl来熟悉HTTP,一般Unix系统都自带curl,文后我附带了一个curl widnows版本的程序,或者去http://curl.haxx.se/下载一个相应版本的。
参考经典REST文章:
http://www-128.ibm.com/developerworks/cn/java/j-cb08016/index.html
Rails REST特性可以让Web服务技术用平*立或编程语言独立的方式相互通信,各个不同应用程序之间的远程过程调用从来都是相当麻烦,今天试用了一下REST,相比SOAP 和 WSDL 的确非常简洁好用。现在能够领会DHH在Rails的演讲中说的:“我不认为Rails应该向外部世界屈服,恰恰相反,Rails正在有力地让外部世界向我们屈服。”这是狂,不过DHH也有资格狂!
下面开始试用REST.
1.建一个friends的表(不废话mysql内容)
2.运行ruby script/generate scaffold friends,生成脚手架代码(不废话rails开发最基本的东东)
3.修改friends list函数改为:
def list @friends = Friends.find_all respond_to do |wants| wants.html wants.xml { render : xml => @friends.to_xml } end
respond_to接受wants请求,根据不同请求返回结果
4.输入测试代码。test.rb
require 'net/http' Net::HTTP.start('localhost', 3001) do |http| response = http.get('/friends/list', 'Accept' => 'text/xml') #Do something with the response. puts "Code: #{response.code}" puts "Message: #{response.message}" puts "Body:\n #{response.body}" end
注意Accept的定义是'text/xml',Rails将根据请求将xml发送给用户,缺省是rhtml的缺省显示。
5.运行ruby test.rb
就得到XML结果。REST继承Rails的风格,世界如此简单!
Rails 路由器根据 URL 模式把请求路由给控制器,
比如friends表的list查询就是http://localhost:3001/friends/list把list操作发送给通过控制器friends,得到结果。直接用TCP/IP 命名就可以定位资源。
用 HTTP 查询和操纵这些资源,Rails根据不同的HTTP ACCEPT头部来判断用户需要的数据,在控制器friends内,list可以根据不同的请求返回对应的结果。
使用基于文本的标准消息格式(例如 XML 或 HTML)来构造数据,Rails用一个to_xml来构造XML数据。
可以通过curl来熟悉HTTP,一般Unix系统都自带curl,文后我附带了一个curl widnows版本的程序,或者去http://curl.haxx.se/下载一个相应版本的。
参考经典REST文章:
http://www-128.ibm.com/developerworks/cn/java/j-cb08016/index.html
上一篇: ural 1160
下一篇: YARN集群遇到的问题