如果我是正确的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上定义自己的标准是没有意义的。
答案 0 :(得分:3)
没有像“HATEOAS”这样的标准或建筑模式。存在包含若干约束的REST(具象状态转移)建筑样式(样式不是图案或其他)。其中一个约束被称为 - “超媒体作为应用程序状态引擎”。
如果超媒体字符串以“✔”开头,则允许客户端执行此操作 对URL的安全GET请求。 URL遵循“✔”符号并且是 rot13已解码。
所有这些都是无关紧要的(和纯粹的设计),唯一重要的是选择超媒体类型(HTML,Atom,Collection + JSON等)和超文本控件,如:
由媒体类型定义,而不是由“如果URL遵循符号”等惯例定义......