快速业务通道

使用Struts 2开发RESTful服务 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-25

使用Struts 2开发RESTful服务

时间:2009-11-10 ibm 李刚

REST 简介

REST是英文Representational State Transfer的缩写,这个术语由Roy Thomas Fielding博士在他的论文《Architectural Styles and the Design of Network-based Software Architectures》中提出。从这篇论文的标题可以看出:REST是一种基于网络的软件架构风格。

提示:国内很多网络资料将REST翻译为“表述性状态转移”,不过笔者对这个翻译不太认同。因为这个专业术语无法传达REST的含义,读者可以先不要理会REST到底该如何翻译,尽量先去理解REST是什么?有什么用?然后再来看这个术语的翻译。关于Roy Thomas Fielding博士的原文参见如下地址:http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm。

REST 架构是针对传统Web应用提出的一种改进,是一种新型的分布式软件设计架构。对于异构系统如何进行整合的问题,目前主流做法都集中在使用 SOAP、WSDL 和 WS-* 规范的Web Services。而REST架构实际上也是解决异构系统整合问题的一种新思路。

如果开发者在开发过程中能坚持REST原则,将可以得到一个使用了优质Web架构的系统,从而为系统提供更好的可伸缩性,并降低开发难度。关于REST架构的主要原则如下:

网络上的所有事物都可被抽象为资源(Resource)。

每个资源都有一个唯一的资源标识符(Resource Identifier)。

同一资源具有多种表现形式。

使用标准方法操作资源。

通过缓存来提高性能。

对资源的各种操作不会改变资源标识符。

所有的操作都是无状态的(Stateless)。

仅从上面几条原则来看REST架构,其实依然比较难以理解,下面笔者将从如下二个方面来介绍REST。

资源和标识符

现在的Web应用上包含了大量信息,但这些信息都被隐藏在 HTML、CSS 和 JavaScript 代码中,对于普通浏览者而言,他们进入这个系统时无法知道该系统包含哪些页面;对于一个需要访问该系统资源的第三方系统而言,同样无法明白这个系统包含多少功能和信息。

URI 和 URL

与 URI 相关的概念还有 URL,URL 是 Uniform Resource Locator,也就是统一资源定位符的意思。其中 http://www.crazyit.org 就是一个统一资源定位符,URL 是 URI 的子集。简而言之:每个 URL 都是 URI,但不是每个 URI 都是 URL。

从REST架构的角度来看,该系统里包含的所有功能和信息,都可被称为资源(Resource),REST 架构中的资源包含静态页面、JSP 和 Servlet 等,该应用暴露在网络上的所有功能和信息都可被称为资源。

除此之外,REST 架构规范了应用资源的命名方式,REST 规定对应用资源使用统一的命名方式:REST 系统中的资源必须统一命名和规划,REST 系统由使用 URI(Uniform Resource Identifier,即统一资源标识符)命名的资源组成。由于REST对资源使用了基于 URI 的统一命名,因此这些信息就自然地暴露出来了,从而避免 “信息地窖”的不良后果。

对于当今最常见的网络应用来说,资源标识符就是 URI,资源的使用者则根据 URI 来操作应用资源。当 URI 发生改变时,表明客户机所使用的资源发生了改变。

从资源的角度来看,当客户机操作不同的资源时,资源所在的Web页(将Web页当成虚拟的状态机来看)的状态就会发生改变、迁移(Transfer),这就是REST术语中 ST(State Tranfer)的由来了。

客户机为了操作不同状态的资源,则需要发送一些 Representational 的数据,这些数据包含必要的交互数据,以及描述这些数据的元数据。这就是REST术语中 RE(Representational)的由来了。理解了这个层次之后,至于REST如何翻译、或是否真正给它一个中文术语,读者可自行决定。

使用Struts 2开发RESTful服务(2)

时间:2009-11-10 ibm 李刚

操作资源的方式

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号