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
分享到:
- 2006-12-13 14:36
- 浏览 8051
- 评论(5)
- 论坛回复 / 浏览 (0 / 12357)
- 查看更多
相关推荐
除了上述基础内容外,Rails框架还支持其他一些与REST相关的特性,包括但不限于: - **AJAX集成**:利用JavaScript和Ajax技术来增强用户体验,使得RESTful API可以与现代前端技术无缝结合。 - **RESTful应用测试**:...
REST(Representational State Transfer)是一种软件架构风格,用于定义客户端与服务端之间交互的标准方式。RESTful API是基于HTTP协议设计的,通过不同的HTTP方法(如GET、POST、PUT和DELETE)来执行对应的操作,并...
总结来说,"使用rails编写REST风格的web应用"涉及的内容包括Rails框架基础、MVC模式的理解、RESTful设计原则的应用、路由配置、控制器和模型的编写、视图渲染以及相关的测试和安全措施。学习这部分内容将使开发者...
Ruby on Rails是一个突然流行...本文介绍Rails中的Web服务,重点放在一个名为Representational State Transfer (REST)的策略上。本文介绍了如何在Ruby on Rails中添加REST风格的Web服务,并从Ruby和Java代码调用服务。
adminlte-rails, AdminLTE Rails gem 将AdminLTE主题与 Rails 资产管道集成 AdminLTE Rails gem AdminLTE 是后端的高级 Bootstrap 主题。英镑 AdminLTE Rails gem 与 Rails 资产管道集成了英镑AdminLTE主题。安装将...
### REST与传统MVC的对比 文档中对比了传统MVC(Model-View-Controller)架构与RESTful架构的URL设计。在传统MVC中,URL往往代表命令,如`/adduser`或`/deleteuser`,而在RESTful架构中,URL代表资源,如`/users/1`...
《Rails101_by_rails4.0》是一本专注于Rails 4.0.0版本和Ruby 2.0.0版本的自学教程书籍,它定位于中文读者,旨在成为学习Rails框架的参考教材。Rails(Ruby on Rails)是一个采用Ruby语言编写的开源Web应用框架,它...
- **Rails中的REST实现**:Rails默认遵循REST原则,通过资源路由和标准的控制器动作支持常见的CRUD操作。 - **资源和表示**:讨论如何将数据建模为资源,并如何通过不同的HTTP方法处理这些资源的不同状态。 **4. ...
### Rails 101 入门电子书知识点详解 #### 一、简介 《Rails 101 入门电子书》是一本非常适合初学者直接入门的书籍,它由xdite编写并出版于2014年6月10日。本书主要针对的是希望学习Ruby on Rails框架的读者,特别...
Rails使用ActiveRecord作为ORM,它使得Ruby类可以直接与数据库表进行交互。在这个项目中,`User`和`Image`模型可能会与数据库中的相应表关联,通过定义属性和关系,如`has_many :images`表示一个用户可以拥有多个...
它允许Rails应用作为客户端,通过HTTP与遵循REST原则的远程资源进行交互,从而实现数据的获取和更新。 5. **rake-0.8.1.gem**:Rake是Ruby社区广泛使用的构建工具,类似于Java的Ant或Python的setup.py。它允许...
Cucumber-Rails集成了Cucumber与Rails,使得开发者能够在Rails环境中方便地使用Cucumber进行功能测试。 在 Rails 应用中使用 Cucumber-Rails,开发者可以创建一个名为`features`的目录,里面包含这些Gherkin特性...
1. **约定优于配置**(Convention Over Configuration):Rails通过默认的约定减少开发者需要明确配置的细节,如数据库表名与类名的对应关系。 2. **Active Record**:这是Rails中的ORM(对象关系映射)库,它允许...
《敏捷Web开发与Rails:程序指南 第四版》是一本深度探讨使用Ruby on Rails框架进行敏捷Web应用开发的专业书籍。本书旨在帮助开发者充分利用Rails 4的特性,提高开发效率,实现快速迭代和高质量的代码编写。 Rails是...
Rails Rest Vote是一个Ruby Gem,可为任何模型的Rails应用程序添加投票功能,并公开其RESTful API。 如果您在Web应用程序中以及移动应用程序中使用了诸如angular2之类的任何前端客户端,那将非常有帮助。 先决条件...
本教程将详细介绍如何使用Aptana与Rails结合,创建一个功能完备的Web应用程序。 首先,我们需要安装Aptana Studio。你可以从其官方网站下载最新版本的安装包。安装过程中,遵循提示进行,确保选择自定义安装并勾选...
从给定的文件信息来看,我们正在探讨的是一本关于Ruby on Rails的书籍,书名为《Simply Rails2》,作者是Patrick Lenz。本书旨在为初学者提供深入理解Ruby on Rails框架的指南,从基础概念到高级主题均有涵盖,是...