基于SOA的REST(Representational Status Transfer - 表述性状态转移)架构风格

REST(Representational Status Transfer - 表述性状态转移)架构风格,目前主要应用与互联网(如手机客户端)。

 

难理解?看看这个链接风格:

http://example.com/customers/1234 

如此,来看REST:是定义Web标准的一系列规则集合,如HTTP,URIs。

 

REST关键性规则

1.给定任意“资源”一个ID

2.连接所有的资源

3.使用标准的方法(Get,Post,Delete,Put)

4.多种方式表述“资源”

5.无状态交流

 

1.给定任意“资源”一个ID

资源是术语,一般用作一系列关键抽象特征的集合。

在这里,我们用URI(Unified Resource Identifier - 统一资源标识符)充当ID,用于识别资源。(URI 由一个全局的命名空间——http://example.com,以及能识别资源的一个全局性ID——customers/1234)

因此,我们可以使用URI去识别一个真实存在的资源(含ID)。无论这个资源是一个表述性单个资源(如实体对象),资源集合,虚拟还是物理对象,或是计算结果。


2.能连接所有的资源

互联网,可以使用链接任意引用真实存在的资源。超链接可以让互联网更加社交网络化。


3.使用标准的方法(Get,Post,Delete,Put)

REST HTTP Method 应用场景:

class Resource { Resource(URI u); Response get(); Response post(Request r); Response put(Request r); Response delete(); }  

实例演示:

如:对资源customers获得所有顾客列表,使用Get;添加一个新的用户,使用Post;其他暂时不使用。对资源customers的Get和Post等操作就是一种状态转移。


4.多种方式表述“资源”

对资源的表述性呈现,可以是XML、TXT(纯文本)、JSON格式信息。因此,可以根据需求提供不同的资源表述方式。


5.无状态交流

这个无状态可能有点让人误解,它指的是思想的无状态性,并不是说一个对象或者一个功能没有状态,只是说这种无状态表现在资源状态。因此,无状态交流隔离了客户端与服务器之间的依赖性。

 

好好运用这些规则,美化你的Web风格。文章粗糙,请大家指教!

原文链接:http://www.infoq.com/articles/rest-introduction

你可能感兴趣的:(Java)