HATEOAS标准/建筑模式

时间:2015-10-02 10:37:10

标签: json api rest hateoas

如果我是正确的HATEOAS是一种架构模式,并没有描述客户端应该如何发现关系。 HATEOAS只描述服务器应该向客户端发送可发现的API。

当采用HATEOAS时,api作者可以定义客户端如何发现关系。

例如,如果没有像hydra / hal / jsonapi这样的标准,json是否使用json文档中的“link”,“_ link”,“links”,“relations”字段来表示关系。

从我的观点来看,这将允许我作为api作者定义这样的东西(有效的HATEOAS):

符号“”表示超媒体控件数组

超媒体控件由字符串表示。

字符串可以以保留符号“✔”,“↯”和“±”开头。

如果超媒体字符串以“✔”开头,则允许客户端对URL执行安全的GET请求。 URL遵循“✔”符号并进行rot13解码。

{
    …
    "": [
       “✔uggc://.../traerf/snagnfl”
    ]
}

从我的观点来看,这应该是有效的HATEOAS,还是我错过了什么?

当然,在HATEOAS上定义自己的标准是没有意义的。

1 个答案:

答案 0 :(得分:3)

没有像“HATEOAS”这样的标准或建筑模式。存在包含若干约束的REST(具象状态转移)建筑样式(样式不是图案或其他)。其中一个约束被称为 - “超媒体作为应用程序状态引擎”。

  

如果超媒体字符串以“✔”开头,则允许客户端执行此操作   对URL的安全GET请求。 URL遵循“✔”符号并且是   rot13已解码。

所有这些都是无关紧要的(和纯粹的设计),唯一重要的是选择超媒体类型(HTML,Atom,Collection + JSON等)和超文本控件,如:

  • < a href =“...”
  • < img src =“...”
  • < link href =“...”
  • < form method =“...”action =“...”

由媒体类型定义,而不是由“如果URL遵循符号”等惯例定义......