尽管 Web 无处不在,可许多人还是很难将 Web 的架构原则应用在自己的系统之中。表述性状态转移(REST),Web 背后的架构,正在迅速地成为架构师在开发分布式系统时考虑到的可行方案之一。在这篇发表的 InfoQ 中文站文章中,Stefan Tilkov 深入研究了使用 REST 设计系统的方法,并考察了传统基于接口(interface-based)的设计方法与其的异同。
不知你是否意识到,围绕着什么才是实现异构的应用到应用通信的“正确”方式,一场争论正进行的如火如荼:虽然当前主流的方式明显的集中在基于 SOAP、WSDL 和 WS-* 规范的 Web Services 领域,但也有少数人用细小而洪亮的声音主张更好的方式是:REST。
Tilkov 在一开始就列举了 REST 的关键原则,使得对这个充满争议的架构的学习变得简单了许多:
- 为所有“事物”定义 ID
- 将所有事物链接在一起
- 使用标准方法
- 资源多重表述
- 无状态通信
这些关键原则带来的一些好处列举如下:
对事物使用一致的命名规则(naming scheme),这样你就不需要提出自己的规则——依靠某个已被定义,在全球范围中几乎完美运行,并且能被绝大多数人所理解的规则。
还有:
统一接口使得所有理解 HTTP 应用协议的组件能与你的应用交互。通用客户程序(generic client)就是从中受益的组件的例子,例如 curl、wget、代理、缓存、HTTP 服务器、网关还有 Google、Yahoo!、MSN 等等。
对于那些对 REST 背后理论感兴趣的人,Tilkov 还给出了基本情况介绍,以及这个领域权威内容的链接。
阅读全文:深入浅出 REST
评论