`
rrtrip
  • 浏览: 20112 次
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

与Rails REST亲密接触

阅读更多
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函数改为:
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
分享到:
评论
5 楼 gigix 2007-06-29  
KDr2 写道
roger 写道
gigix 写道
standior 写道
请问 哪里下载rails 1.2?

www.pleasegoogleit.com
www.pleasegoogleit.com 是baidu。。。哈哈

太流氓了,哈哈
4 楼 KDr2 2007-06-29  
roger 写道
gigix 写道
standior 写道
请问 哪里下载rails 1.2?

www.pleasegoogleit.com
www.pleasegoogleit.com 是baidu。。。哈哈
3 楼 roger 2006-12-19  
gigix 写道
standior 写道
请问 哪里下载rails 1.2?

www.pleasegoogleit.com
2 楼 gigix 2006-12-18  
standior 写道
请问 哪里下载rails 1.2?

www.pleasegoogleit.com
1 楼 standior 2006-12-18  
请问 哪里下载rails 1.2?

相关推荐

    应用Rails进行REST开发

    除了上述基础内容外,Rails框架还支持其他一些与REST相关的特性,包括但不限于: - **AJAX集成**:利用JavaScript和Ajax技术来增强用户体验,使得RESTful API可以与现代前端技术无缝结合。 - **RESTful应用测试**:...

    Rails上的API:使用Rails构建REST APIAPIs on Rails: Building REST APIs with Rails

    REST(Representational State Transfer)是一种软件架构风格,用于定义客户端与服务端之间交互的标准方式。RESTful API是基于HTTP协议设计的,通过不同的HTTP方法(如GET、POST、PUT和DELETE)来执行对应的操作,并...

    使用rails编写REST风格的web应用

    总结来说,"使用rails编写REST风格的web应用"涉及的内容包括Rails框架基础、MVC模式的理解、RESTful设计原则的应用、路由配置、控制器和模型的编写、视图渲染以及相关的测试和安全措施。学习这部分内容将使开发者...

    跨越边界:REST on Rails

    Ruby on Rails是一个突然流行...本文介绍Rails中的Web服务,重点放在一个名为Representational State Transfer (REST)的策略上。本文介绍了如何在Ruby on Rails中添加REST风格的Web服务,并从Ruby和Java代码调用服务。

    adminlte-rails, AdminLTE Rails gem 将AdminLTE主题与 Rails 资产管道集成.zip

    adminlte-rails, AdminLTE Rails gem 将AdminLTE主题与 Rails 资产管道集成 AdminLTE Rails gem AdminLTE 是后端的高级 Bootstrap 主题。英镑 AdminLTE Rails gem 与 Rails 资产管道集成了英镑AdminLTE主题。安装将...

    使用rails编写REST风格的web应用.pdf

    ### REST与传统MVC的对比 文档中对比了传统MVC(Model-View-Controller)架构与RESTful架构的URL设计。在传统MVC中,URL往往代表命令,如`/adduser`或`/deleteuser`,而在RESTful架构中,URL代表资源,如`/users/1`...

    Rails101_by_rails4.0

    《Rails101_by_rails4.0》是一本专注于Rails 4.0.0版本和Ruby 2.0.0版本的自学教程书籍,它定位于中文读者,旨在成为学习Rails框架的参考教材。Rails(Ruby on Rails)是一个采用Ruby语言编写的开源Web应用框架,它...

    The Rails 4 Way

    - **Rails中的REST实现**:Rails默认遵循REST原则,通过资源路由和标准的控制器动作支持常见的CRUD操作。 - **资源和表示**:讨论如何将数据建模为资源,并如何通过不同的HTTP方法处理这些资源的不同状态。 **4. ...

    Rails项目源代码

    Rails使用ActiveRecord作为ORM,它使得Ruby类可以直接与数据库表进行交互。在这个项目中,`User`和`Image`模型可能会与数据库中的相应表关联,通过定义属性和关系,如`has_many :images`表示一个用户可以拥有多个...

    rails本地安装包完整版

    它允许Rails应用作为客户端,通过HTTP与遵循REST原则的远程资源进行交互,从而实现数据的获取和更新。 5. **rake-0.8.1.gem**:Rake是Ruby社区广泛使用的构建工具,类似于Java的Ant或Python的setup.py。它允许...

    关于rails 3.1 cucumber-rails 1.2.0

    Cucumber-Rails集成了Cucumber与Rails,使得开发者能够在Rails环境中方便地使用Cucumber进行功能测试。 在 Rails 应用中使用 Cucumber-Rails,开发者可以创建一个名为`features`的目录,里面包含这些Gherkin特性...

    Rails

    1. **约定优于配置**(Convention Over Configuration):Rails通过默认的约定减少开发者需要明确配置的细节,如数据库表名与类名的对应关系。 2. **Active Record**:这是Rails中的ORM(对象关系映射)库,它允许...

    Agile Web Development with Rails 4th edition(敏捷Web开发与Rails:程序指南 第四版)

    《敏捷Web开发与Rails:程序指南 第四版》是一本深度探讨使用Ruby on Rails框架进行敏捷Web应用开发的专业书籍。本书旨在帮助开发者充分利用Rails 4的特性,提高开发效率,实现快速迭代和高质量的代码编写。 Rails是...

    rails_rest_vote:RESTful投票宝典,用于Rails应用

    Rails Rest Vote是一个Ruby Gem,可为任何模型的Rails应用程序添加投票功能,并公开其RESTful API。 如果您在Web应用程序中以及移动应用程序中使用了诸如angular2之类的任何前端客户端,那将非常有帮助。 先决条件...

    使用Aptana+Rails开发Rails Web应用(中文)

    本教程将详细介绍如何使用Aptana与Rails结合,创建一个功能完备的Web应用程序。 首先,我们需要安装Aptana Studio。你可以从其官方网站下载最新版本的安装包。安装过程中,遵循提示进行,确保选择自定义安装并勾选...

    rails2-sample

    从给定的文件信息来看,我们正在探讨的是一本关于Ruby on Rails的书籍,书名为《Simply Rails2》,作者是Patrick Lenz。本书旨在为初学者提供深入理解Ruby on Rails框架的指南,从基础概念到高级主题均有涵盖,是...

    component base rails applications

    - 描述了组件化思想的历史,并探讨了它与Rails过往版本的关系。 8. LeanPub出版过程: - LeanPub出版过程是一种轻量级的电子书出版方式,通过不断地迭代和读者反馈来调整内容,直到最终得到读者认可的版本。 - ...

Global site tag (gtag.js) - Google Analytics