HATEOAS REST Service

JSON Hypermedia Types
JSON媒体类型没有提供原生的超链接语法,所以为了解决这个问题,有几种JSON超媒体类型被创建出来:

• HAL—http://stateless.co/hal_specification.html
• JSON-LD—http://json-ld.org
• Collection+JSON—http://amundsen.com/media-types/collection/
• JSON API—http://jsonapi.org/
• Siren—https://github.com/kevinswiber/siren
HAL是其中最流行的一种,而且被Spring Framework支持。

HAL
HAL(The Hypertext Application Language)是简单的超媒体类型,由Mike Kelly于2011创建。它同时支持XML和JSON格式。HAL媒体类型定义了一种资源,它是状态的容器、links的集合、嵌套资源的集合。如下图所示:

 

HATEOAS((Hypermedia as the Engine of Application State)
可以看做对于一般以JSON为例的返回数据在文件依赖关系(rel)

及url路径(href)上的再描述。

Spring HATETOS 的目标是解决两个问题:link creation 及representation assembly

默认的Spring使用HAL render responses 
HAL 定义Links 在return的文本中作为性质被包含
使用这种方法可以完成resource discoverability
通过一层一层的json返回数据中的links可以找到所有的资源。

HAL(Hypertext Application Language)
expressing hypermedia controls such as Links wlth JSON

HAL 是WEB API可以以Link进行发展的组织形式 
其对于serving及 consuming hypermedia提供了一致的接口

猜你喜欢

转载自www.cnblogs.com/softidea/p/9595277.html
今日推荐