浏览 12362 次
锁定老帖子 主题:与Rails REST亲密接触
该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2006-12-13
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 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |