何为 REST?

何为 REST?

RESTful

REST (Representation State Transfer) ful 就是 fulfil(履行, 满足, 完成, 落实, 兑现, 实践)

REST 是设计基于命名资源 — 例如,以 Uniform Resource Locators(URL)、Uniform Resource Identifiers(URI)和 Uniform Resource Names(URN)的形式 — 而非消息的松耦合 Web 应用程序的一种风格。REST 巧妙地借助已经验证过的成功的 Web 基础设施 — HTTP。换句话说,REST 利用了 HTTP 协议的某些方面,例如 GETPOST 请求。这些请求可以很好地映射到标准业务应用程序需求,诸如创建、读取、更新和删除(CRUD),如表 1 所示:

表 1. CRUD/HTTP 映射
应用程序任务 HTTP 命令
创建 POST
读取 GET
更新 PUT
删除 DELETE

请求就像是动词,而资源就像是名词,把两者相关联就形成了对行为的逻辑表达 — 例如, GET 这个文件,DELETE 那条记录。

真正的 REST 之父 Roy Fielding 在他的博士毕业论文中陈述到:REST “强调组件交互的可伸缩性、界面的普遍性、独立部署组件以及使用中间组件来减少交互延迟,增强安全性并封装遗留系统”(参见 参考资料)。构建 RESTful 系统并不难,且这样的系统具有高度的可伸缩性,同时与底层数据松散耦合;这样的系统还可以很好地利用缓存。

Web 上所有的东西(页面、图像等)本质上都是资源。而 REST 正是基于命名资源而非消息的,这就限制了底层技术的曝光,从而给应用程序设计中的松耦合提供了便利条件。例如,下面的 URL 在不暗示任何底层技术的情况下,公开了资源:http://thediscoblog.com/2008/03/20/unambiguously-analyzing-metrics/。

该 URL 表示一个资源 — 一篇名为 “Unambiguously analyzing metrics” 的文章。请求该资源就会调用 HTTP GET 命令。注意该 URL 是基于名词的。基于动词的版本(大概类似 http://thediscoblog.com/2008/03/20/getArticle?name=unambiguously-analyzing-metrics)会违反 REST 原则,因为它以 getArticle 的形式嵌套了一条消息。您也可以设想通过 HTTP 的 POST 命令来发布一个新资源,(比如说,一篇诸如 http://thediscoblog.com/2008/03/22/rest-is-good-for-you/ 的文章)。你还可以设想用关联的、基于动词的 API — 如 createArticle?name=rest-is-good-for-you and deleteArticle?name=rest-is-good-for-you — 这样的调用来拦截 HTTP GET 命令,并最大限度地忽略已有的(并且是成功的)HTTP 基础设施。换句话说,它们不是 RESTful 风格。

REST 的魅力在于任何东西都可以成为资源,且表示方法也可以不同。在前面的例子中,资源为一个 HTML 文件,因此,其响应可能是 HTML 格式的。但是资源也可以是一个 XML 文档、序列化的对象或者 JSON 表示。其实,这些都无关紧要。重要的是资源被命名了,并且与它通信不会影响其状态。不影响状态是很重要的,因为无状态的交互有利于可伸缩性。

它的价值在那里?

引用达芬奇的一句名言 “简洁就是终极复杂”。万维网的实现非常简单,并且无可置否地获得了成功。REST 正是利用了 Web 的简单性,并因此造就了高度可伸缩的、松散耦合的系统,而且事实证明,这样的系统很容易构建。

正如您所看到的,构建 RESTful 应用程序最难的部分在于确定要公开的资源。解决了这个问题之后,再使用开源 Restlet 框架构建 RESTful Web 服务就是小菜一碟了。

http://www.ibm.com/developerworks/cn/education/java/j-rest/j-rest.html

时间: 2024-08-29 20:40:40

何为 REST?的相关文章

何为绩效管理

何为绩效管理 --摘自<公司开了,你该这样管理>作者:张国祥 何为绩效管理 绩效是工作的有效成果.员工绩效就是员工工作的有效成果,企业绩效就是企业组织有效业绩的总和. 所谓绩效管理就是对绩效目标设立.达成.评价.运用.提升的循环管理过程. 企业管理本质上就是绩效管理.采用什么方法提高绩效管理水平因企业而异. 目前太多企业只有绩效考核,没有绩效管理:只有结果打分,不管过程改善.甚至很多企业只知绩效考核.不知绩效管理.实施绩效考核的企业员工报怨的多.满意的少.为什么会这样? 可能存在的原因如下:

C和C++的面向对象专题(1)——何为面向对象

题记: 面向对象是一种思想,而不是一门语言 我们上哪去找对象,都面向对象去了 本专栏文章列表 一.何为面向对象 二.C语言也能实现面向对象 三.C++中的不优雅特性 四.解决封装,避免接口 五.合理使用模板,避免代码冗余 六.C++也能反射 七.单例模式解决静态成员对象和全局对象的构造顺序难题 八.更为高级的预处理器PHP 一.何为面向对象 现在学软件开发,都讲面向对象的编程模型,其实也很简单.用一句话来总结,面向对象就是将方法和方法的属性整合在一起,让每个方法引用的属性值尽可能在对象内部,对外

何为抽象?你有本末倒置吗?

一.何为抽象? 提到抽象,你会想到什么?是这些吗? 抽象是面向对象的基础,有了抽象才会有面向对象的三大特征:继承,封装,多态. 层与层联系要依赖抽象,上层依赖抽象,下层也要依赖抽象. 总之一句话,编程就是要依赖抽象. 等等这类的话,我们朗朗上口.那么回头再来看这些,它到底是什么? 它不是抽象,它是抽象的一些体现,也就是说这都是抽象后的结果,抽象的优点好处.作为程序员的我们要的就是抽象带来的这些结果,但是我们更重要的一个任务是,如何做出"抽象"?把抽象敲出来,有代码来体现.对于程序员来说

何为.Net Remoting【转】

借助基维百科给它的定义如下: NET Remoting 是微软 .NET Framework 中的一种网络通讯技术,与 XML Web Service 不同的是,它可以使用 SOAP 以外的协定来通讯,而在伺服端和用户端之间所操作的方法近乎相同,用户端可以不必考虑使用的协定,即可存取伺服端所开放的物件.这个技术与是由Distributed COM所发展而来的,与DCOM最大的不同是,DCOM有限制使用 TCP Port,但.NET Remoting 可以选择使用 TCP 或 HTTP 的方式通讯

详谈何为404错误及404处理方法

404问题绝对关乎网站的优化,而大部分网站都会有404错误的相关处理,比如一个网站删除了页面内容,正常网站将自动返回404状态码,搜索引擎进行更新并删除,避免对网站用户及搜索引擎带来负面影响.但问题来了,如果网站只删除了内容,没有任何主体内容的页面被保存了下来,未做404处理.当然,存在一类网站只删除内容后返回正常200状态码,提醒一句"该内容已删除",但其都没有.可以发现目前这个搜藏中的url仍然正常返回200,http://cang.baidu.com/Lee/snap/3b0a0

何为&ldquo;精通Java&rdquo;

何为精通Java?本来Java仅仅是一门语言,但从应用技术的角度来看,精通Java是可以无边无际的.很可能你可以对James说:我精通J2EE.JVM.Java服务器.大数据等等一些和Java相关的应用:况且这些应用是随着时间的发展而扩散的.那James就单纯从语言角度出发,整合网络上所看到的资料说一说. 怎么才算是精通Java呢?针对这一点,可从两个方面解读:纵向(从语言角度),在于深度:横向(从应用角度),在于广度. 从语言角度来说,也从一般人能够做到的程度,讲述James自己的体会: 1.

何为中间语言IL?

一直以来,对于.NET与C#之间的关系我都存在着疑惑,为此,今天专门仔细看了一下以前最容易忽略掉的书本"前言"部分,予以澄清:) 首先,c#的结构和方法论反映了.NET的基础方法论,在很多情况下,c#的特定功能取决于.net的功能,依赖于.net基类.通俗一点说, (1).net framework 是一个功能丰富的开发平台,可开发,部署和执行分布式应用程序. (2)c#是一个基于现代面向对象设计方法的语言,它本身只是一种语言,不是.net的一部分,只是用它生成面向.net环境的代码.

何为程序员思维

看到这个题目,我想起了很多很多........... 首先,我说明我为什么要写这篇文章了. 一个原因是逸惋惜峥嵘岁月岁月稠,当初读大学的时候,学习计算机技术的课程,我过多的走向了两种极端的状况.一种情况,我愿意把他归结于本末倒置,例如我学习<C++面向对象程序设计>的时候,更多的是研究C++的语法,却忽略了面向对象的思想,到头来,C++语法学会了,但是最重要的面向对象却没有理解,也不知道他能够真正的做些什么.另一个情况,我把它理解为目标很宏大,理解很困难,例如,我学习软件过程的时候,开始,课程

[反思]何为略读?

最近,在看一个本书<如何阅读一本书> 文中谈到Skim-read,粗读. 审视我一直以来的阅读习惯,觉得基本是反面教材: 顺序阅读,力求每一句都理解,以看完一本书为目标. 略读: 1.书名,是否包含你想了解的方面 2.序言.出版者的话等,看下这本书的目的 3.目录,对此书的基本架构做概括性的理解: . 旅行之前,地图还是很有必要去看的. 4.索引(一般的英文书都有),可以看出本书的涵盖内容 若上述过程后,仍觉得需要阅读,则Start 小技巧: 1.主题性阅读:对着目录来看,对已阅的章节进行标记

何为企业管理体系

何为企业管理体系 作者:张国祥 企业管理体系是企业各系统的有机整合.是一个不依赖个人作用而能运转自如的管理机制. 例如决策机制.选人用人留人机制.激励机制.分配机制.问题解决机制.产品开发机制.市场拓展机制.危机处置机制--如果企业运行的所有事务工作都有章可循.机制健全,老板在与不在一个样,有人监督与无人监督一个样,就可以说你的企业打造了一套不依赖老板.不依赖个别能人而靠机制运转的管理体系. 如果对系统没有清醒的认识,我们不妨举一个例子来说明.大家都知道轿车有很多知名品牌,如果你从各大名车上各拆