通过上一讲,我们明白了为什么Web需要按照REST的方式来设计,而不是传统的面向对象编程的RPC方式,这一讲我们将通过一个实例来演示如何进行REST方式的Web设计,也就是让我们的设计变的RESTful。
航空公司的需求
我们假设你为一家航空公司工作,你的任务是为他们设计一个航班管理系统,它的功能包括:
- 允许公司员工通过Web前端来输入航班信息。航班信息包括航班的起飞和降落城市,以及起飞时间等。
- 允许客户通过手机查询他的航班信息。
- 允许第三方通过我们提供的API来获取我们的航班信息。
很没有难度,不是吗?如果你是个急性子,你甚至可能都顾不上将你无懈可击的设计转换成UML,就已经在你IDE的编辑框里输入了如下字符:
class
FlightSchedule
def
CancelFlight
......
但是慢着,在REST的世界里,我们不再需要操心这些,我们需要做的只有一件事情:
定义你的资源!
是的,就这一件,因为REST已经为我们定义好了用于操作这些资源的方法。
在这个例子里,我们首先会想到这几个资源:airports,airplanes,flights。当然可能还会有其它,但就让我们先从这几个开始吧!
我们首先要做的就是为这些资源分配URL,原则只有一个:尽可能的简单明了。
- /airports,通过这个URL可以访问所有的机场资源
- /airplanes,通过这个URL可以访问所有的飞机资源
- /flights,通过这个URL可以访问所有航班资源
还有:
- /airports/pudong,通过这个URL可以获取浦东机场的相关信息
- /airplanes/ZJ3543,通过这个URL可以获取编号为ZJ3543的飞机信息
- /flights/451,通过这个URL咋可以了解到航班451的起飞,降落城市已经起飞时间等信息。
方法已经准备好了
一旦你定义好了你的资源,整个设计也就完成了,因为,REST已经为你准备好了以下四个方法(并且不再需要其它的了):
- GET,获取资源
- POST,创建一个新资源
- PUT,更新已存在的资源
- DELETE,删除资源
通过HTTP调用这些方法
同样的,我们也不需要关心客户端如何来调用我们的方法,浏览器会帮我们搞定一切。
如果你仅仅只是在地址栏敲了个地址,然后按了下回车,浏览器会生成一条HTTP消息,并通过它来调用你输入的URL所代表的资源的GET方法。
如果你填写了一个表单,并点击了提交按钮,那么浏览器会将你填在表单中的信息组装成一条HTTP POST消息,并通过它来调用你想访问资源的POST方法。
但不幸的是,由于HTML的限制,目前你无法通过浏览器来调用资源的PUT和DELETE方法,不过这不重要,GET和POST对我们已经足够了。
好了,我们的基于REST的设计就这么完成了,下一讲,我们将演示如何使用Rest on Rails来快速优美的实现我们的设计。
分享到:
相关推荐
Ruby on Rails:RESTful设计原则.docx
学习Ruby on Rails 4.0的逐步指南。 它包括针对Ruby 2.0.0的基本教程,是为至少了解另一种编程语言并熟悉HTML的程序员编写的。
在本篇内容中,我们将深入探讨如何利用Ruby on Rails(简称Rails)这一强大的Web应用程序框架来构建可伸缩且易于维护的RESTful API。Rails以其简洁优雅的语法、高效的开发速度以及良好的社区支持而闻名,这使得它...
RESTful-Rails-开发 RESTful Rails 开发库。 你好 Rails 类别图 API - WIKICAT 本地图片 带有地理标记的维基百科文章 - WIKIPINS 城市步道API 余烬漫步
本书教您如何使用Ruby on Rails开发和部署真正的,具有工业实力的Web应用程序,Ruby on Rails是为诸如Twitter,Hulu,GitHub和Yellow Pages等顶级网站提供支持的开源Web框架。
### Ruby on Rails 指南 v5.0.1 中文版 #### Rails入门 - **前提条件**:为了能够顺利地开始Rails的学习之旅,读者需要具备一定的Ruby语言基础,并且对Web开发有一定的了解。 - **Rails是什么?**:Rails是一种...
结合标题中的“RESTful Ruby on Rails Web API提供项目”,我们可以推断这是一个使用Ruby on Rails框架构建的Web应用程序,特别关注于实现RESTful API。 **RESTful原则:** REST(Representational State Transfer...
- **重要概念**:本指南旨在帮助读者深入理解Ruby on Rails(以下简称Rails)4.2.5版本的核心功能与最佳实践。 - **基础假设**:读者已经具备一定的Ruby编程基础,并对Web开发有一定的了解。 #### 二、什么是Rails...
Ruby on Rails是一个突然流行起来的框架,充当着Ruby编程语言的催化剂。随着Ruby的经验不断成功,开发人员开始寻求把他们的...本文介绍了如何在Ruby on Rails中添加REST风格的Web服务,并从Ruby和Java代码调用服务。
Rails::API 是 Rails 的精简版本,针对不需要使用完整 Rails 功能的开发者。 Rails::API 移除了 ActionView 和其他一些渲染功能,不关心Web前端的开发者可更容易、快速地开发应用程序,因此运行速度比正常的 Rails ...
在Ruby on Rails中文指南中,你将全面学习到如何利用这个强大的框架来构建动态的、数据驱动的Web应用程序。 首先,让我们深入理解Rails的核心概念: 1. **路由(Routes)**:Rails的路由系统是应用程序的导航蓝图...
Ruby on Rails,简称Rails,是基于Ruby语言的一个开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,旨在使Web开发过程更加高效、简洁。本压缩包中的"Ruby on Rails入门经典代码"提供了新手学习...
Rails Rest Vote是一个Ruby Gem,可为任何模型的Rails应用程序添加投票功能,并公开其RESTful API。 如果您在Web应用程序中以及移动应用程序中使用了诸如angular2之类的任何前端客户端,那将非常有帮助。 先决条件...
Ruby on Rails,简称Rails,是一种基于Ruby语言的开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,旨在使Web开发过程更加高效、简洁。本篇将通过一个入门实例,深入探讨Rails的基本概念和核心...
Ruby on Rails,简称Rails,是基于Ruby编程语言的一个开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,旨在提高开发效率和代码的可读性。Rails以其“约定优于配置”(Convention over Configuration)...
### Ruby on Rails 101:深入理解与实践 #### 引言 《Ruby on Rails 101》是一本介绍Ruby on Rails(简称RoR或ROR)的基础书籍,旨在为初学者提供一个全面而深入的学习框架。本书由Peter Marklund编写,包含了五天...
通过上述内容,我们可以看到,《Flexible Rails: Flex 3 on Rails 2》不仅是一本关于如何结合使用Flex 3和Rails 2的技术书籍,更是一本深入浅出地讲解这两种技术如何协同工作的指南。对于那些希望构建高效且美观的...
原文在此http://guides.ruby-china.org/index.html 我只是把html拷贝到word里面罢了 然而只拷贝到了Rails 安全指南这一章,后面的太多就没拷贝了 初学者只需打印到368页即可