`
zzc1684
  • 浏览: 1191513 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

JAX-RS入门 十一:HATEOAS

阅读更多

HATEOAS全称:超媒体即状态应用引擎 (Hypermedia As The Engine Of Application State)。

 

一、Atom Links

 

RESTful使用Atom Syndication Format来实现HATEOAS。Atom Links 也是一种xml元素结构,例如:

Xml代码 复制代码 收藏代码
  1. <customers>  
  2.     <STRONG><link rel="next"  
  3.         href="http://example.com/customers?start=2&size=2"  
  4.         type="application/xml"/></STRONG>  
  5.     <customer id="123">  
  6.         <name>Bill Burke</name>  
  7.     </customer>  
  8.     <customer id="332">  
  9.         <name>Roy Fielding</name>  
  10.     </customer>  
  11. </customers>  

其中:

  • rel属性
    链接的简单说明和文本显示,也标明了此链接的意义,例如上面标明链接到下一页(或下一个其他的东西),等同于html中<a>元素上的标签
  • href属性
    链接到的地址
  • type属性
    定义交换数据类型
  • hreflang属性
    定义交换数据类型的语种,例如法语、英语、德语等等(上面例子中未介绍)

当客户端收到一个返回的信息中嵌有Atom links,它就去查找它感兴趣的链接,然后调用它。

 

二、在WebServices中使用HATEOAS的优势

  1. 位置透明
    用户只需要知道逻辑的链接名,而不需要知道具体的url
  2. 解耦合交易的信息
    不把用户需要访问的url地址位置固定,而是通过请求返回,则服务器端可以自由的修改逻辑了更新uri而不影响客户端
  3. 减少状态交换的错误

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics