前言
Http协议除了 get 和 post ,还可以做更多的事情,一直以来,很多的开发
人员都忘了这一点。
但是,如果你知道浏览器其实只支持 get 和 post, 那么你就不会感到惊奇
了。
get 和 post 是http请求从客户端传到服务器端的两个方法。除了这两个,
http协议还知道 put和delete 方法,这两个方法告诉服务器创建或者删除一个
WEB的资源。
这个教程的目的,就是扩展开发人员的视线,去了解http协议的 put 和
delete 方法。我们常说的 REST 这个术语,精华就是 http 协议中 get, post,
put, delete 四个方法。Rails 从1.2版本开始,就支持 REST 这个技术了。
这个教程一开始会简短的介绍REST的背景和概念,接着介绍为什么要开发
REST风格的Rails应用。
使用 scaffolding,这是可以帮助我们产生 controller 和 model 细节的工
具,对我们的进行REST应用的开发很有帮助。REST的应用中作用非常重大的路由
技术,将会在接下来的章节介绍。“嵌套的资源”这个章节,会介绍一下REST的
高级应用,告诉大家资源如何以 父 - 子(继承关系)的关系组合在一起,同时不
违反的REST 风格的路由设计。教程的后面,还会介绍一些REST的内容,AJAX,
REST风格的应用的测试方法,还有“ActiveResource”-- REST的客户端部分。
在我们开始之前,再啰嗦最后一句:要读这个教程,最少你要懂一点Rails开
发的基本知识,否则的话,先去学习学习吧:)
什么是REST?
REST这个术语,是Roy Fielding 在Ph.D.论文中提出来的,它的全称是
“Representational State Transfer.”
REST描述了这么一个架构:利用标准的http 协议中的 get, post, put,
delete 来请求和操作网络上的资源。
在REST中,资源的意思就是一个 基于URL实体,客户端可以通过 http协
议来和它进行交互。这个资源可以用各种形式来展示给客户端,如 HTML,XML,
RSS,主要依赖于客户端的调用方式。并不像以往的Rails开发那样,用REST方
式,一个 url 不是指定一个 model 或者 action, 一个 url 仅仅是资源的本身而
已。
在图1.1中,三个资源的URL的开头都是相同的,通过后面的不同的数字
来保证这三个是不同的资源。
注意:URL并没有表明要对这三个资源进行什么操作。
Rails 应用中,一个资源是由 controller 和 model 组成的。那么从
技术的角度来看,图 1.1中的3个资源"project",就是针对3个请求,而表现出
来的 Project model(也就是ActiveRecord类了)的3个实例形式。
为什么使用REST
REST所带给我们的,是Rails 的理论上的提升,下面的一些特性,将会使
我们清晰地了解这一点。
a) 简明的Url. REST 风格的URL是为了定位一个资源,而并不是调用一
个action. 在REST中,URL经常以这种方式出现:先是controller的名称,然后
是资源的id。请求的操作隐藏在URL 里,并且通过 http 协议来表示(get, post,
put, delete 四个动作)。
b) 传回给客户端不同格式的内容。我们通过一种方式来编写 controller,
其中的action应该都可以返回给客户端不同的格式的结果。对于同一个 action,
即可以返回给客户端 html, 也可以返回给xml,也可以返回给 RSS,这依赖于客户
端想要什么。REST应用就好像变得能处理客户端好多的命令。
c) 更少的代码。因为一个action 可以返回客户端的各种需要格式,这就
减少了(DRY don’t repeat yourself),这也就让 controller 里的代码减少了。
d) 面向 CRUD 的controller. 所谓CRUD 就是Create,Retrieve,Update,Delete.
controller 和 model 融合到一起,每个controller都会响应某个
model的操作。
e) 让系统设计更简单。REST风格的开发方式,会使系统结构更加清晰,而
且容易维护。为什么使用REST?
新玩意
如果你觉得 REST 让你之前所有的开发经验变得毫无作用,别担心,那是
不可能的~ 因为REST仍然是基于 MVC 风格的。从技术角度来看,REST中的“新
玩意”可以归纳为以下几点:
a) 在 controller 中的 respond_to 的用法。
b) 对于 link 和 form 的新的 helper 方法。
c) 在 controller redirect 中的 url 方法。
d) 在 routes.rb 文件中,新的路由定义方法。
好了,今天就到这了,明天以实例说明。
分享到:
相关推荐
### 应用Rails进行REST开发 #### 1.1 什么是REST? REST(Representational State Transfer),这是一种由Roy Fielding在他的博士论文中提出的架构风格。REST的核心思想是通过标准HTTP协议中的GET、POST、PUT、...
《Web开发敏捷之道:应用Rails进行敏捷Web开发(第3版)》:Ruby on Rails是一个全套的MVC web框架,它能帮你开发高质量又美观的web应用,而且开发速度快得出乎你想象。你只须集中精力于应用程序本身,Rails就会帮你...
在本篇内容中,我们将深入探讨如何利用Ruby on Rails(简称Rails)这一强大的Web应用程序框架来构建可伸缩且易于维护的RESTful API。Rails以其简洁优雅的语法、高效的开发速度以及良好的社区支持而闻名,这使得它...
### 应用Rails进行敏捷Web开发:探索框架的精髓与敏捷的魅力 Rails,全称Ruby on Rails,是由David Heinemeier Hansson创建的一种基于Ruby语言的开源Web开发框架。自诞生以来,Rails以其独特的魅力迅速席卷了Web...
《应用Rails进行敏捷Web开发 第三版》是关于Ruby on Rails框架的一本经典教程,针对的是Web开发领域的专业人士。Rails是一种流行的开源Web应用程序框架,它基于Ruby编程语言,旨在简化和加速Web应用的开发过程,强调...
Rails,全称Ruby on Rails,是一款基于Ruby语言的开源Web应用程序框架,遵循MVC(Model-View-Controller)架构模式,特别适合快速开发RESTful(Representational State Transfer,表述性状态转移)风格的Web应用。...
《应用Rails进行敏捷Web开发(第2版)》是一本深度探讨如何利用Ruby on Rails框架进行高效、敏捷的Web应用程序开发的专业书籍。Rails是Ruby语言的一个开源Web开发框架,它倡导DRY(Don't Repeat Yourself)原则,强调...
标题与描述均指向了"使用Rails编写REST风格的Web应用"这一主题,这是一份深入探讨如何运用Ruby on Rails框架来构建遵循REST(Representational State Transfer)架构风格的Web应用程序的指南。REST作为一种架构风格...
除了上述两部分外,对Rails缺乏了解的读者应该首先阅读“起步”部分,通过一个最简单的应用示例感性了解这个时下热门的web框架。不熟悉Ruby的读者应该阅读“附录”部分中的“Ruby简介”,以便了解Ruby的基本语法与...
随着Ruby的经验不断成功,开发人员开始寻求把他们的Ruby应用程序与用其他语言编写的应用程序集成。Rails对Web服务提供了优秀的支持。本文介绍Rails中的Web服务,重点放在一个名为Representational State Transfer ...
Rails(Ruby on Rails)是一个采用Ruby语言编写的开源Web应用框架,它遵循模型-视图-控制器(MVC)的架构模式,设计用来快速开发数据库驱动的动态网页。随着Rails版本的更新迭代,此书聚焦于一个特定的版本,帮助...
Ruby on Rails(简称Rails)是一个用Ruby语言编写的开源全栈Web应用框架。本书深入浅出地介绍了Rails 4的各种组件和功能,适合已经熟悉Ruby编程并希望深入了解Rails框架的开发人员。 #### 描述:学习ruby! 这句...
Rails是Ruby编程语言的一个著名框架,用于开发Web应用程序。它以MVC(模型-视图-控制器)架构模式为基础,提供了许多内置功能,使开发者能够更高效地编写代码。在这个"rails本地安装包完整版"中,包含了Rails 2.1.0...
REST(Representational State Transfer)是一种网络应用程序的设计风格和开发方式,基于HTTP协议,通过URL定位资源,使用HTTP方法(GET、POST、PUT、DELETE等)操作资源。 API Taster的使用非常直观。它提供了一个...
Ruby on Rails(简称Rails)是一个开源的Web应用框架,它遵循MVC(模型-视图-控制器)架构模式,以Ruby语言编写,旨在简化Web应用开发过程,提高效率。 **1. MVC架构** Rails的核心在于MVC设计模式,它将应用分为三...
Rails是一个基于Ruby编程语言的开源Web应用程序框架,遵循MVC(Model-View-Controller)架构模式,致力于实现“约定优于配置”(Convention over Configuration, CoC)和“Don't Repeat Yourself”(DRY)的原则,极...