之前
restful理解_数据库_黄腾霄的博客-CSDN博客
和大家介绍了对RESTful的理解。今天和大家介绍下RESTful中最重要的一个概念HATEOAS。
什么是HATEOAS
HATEOAS是
Hypermedia as the Engine of Application State
的缩写。
翻译过来就是
超媒体即应用状态引擎
。
那这个是什么样的一个东西呢?
我们先来看一个现实中的问题。
问题来源
我们在项目开发中经常需要涉及同后端对接API。
对接的过程一般都是后端的同学给出一个文档,告诉我们有哪些API,可以获得什么样子的参数。
试想一下,如果有一天后端同学新增加了API,但是没有给这个API文档,那你该怎么办?
所以说API文档,成为了前后端对接的耦合因素。
HATEOAS解决什么问题
HATEOAS通过超媒体来提供客户端与服务器之间的交互。
即客户端可以通过一个简单的初始URI,并从返回值获取可以操作的其他信息。
这样一来,我们对接后端时,就几乎不需要额外的信息。
可以进一步实现前后端的解耦。
在
Richardson Maturity Model
中,HATEOAS为于最高层,可以显著提升RESTful API的可发现性和响应的自解释性。
HATEOAS例子
说了这么多大家可能还不是很了解,这里我们举个例子。
假设我们有这么一个API,可以返回一个人和他孩子的名字。
GET /people/huangtengxiao
<person>
<name>huangtengxiao</name>
<children>
<name>xiaohuang</name>
</children>
</person>
那按照RESTfulAPI的方式,我们可以通过POST方法给他添加孩子
POST /people/huangtengxiao/children/xiaoxiaohuang
GET /people/huangtengxiao