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

扫描二维码关注公众号,回复: 3074805 查看本文章

默认的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