预先准备:对不起,如果我误解了超媒体或 Restfull 概念:这是一项正在进行的工作......)
我试图弄清楚超媒体和 hydra ( http://www.markus-lanthaler.com/hydra ),并且在设计我的 api 之前有一些关于向客户端返回信息的问题。
假设我有一个位于 www.myshop.com 的网上商店
到根的 HTTP GET 可以返回(例如)表示为链接的资源列表(在 json-ld 文档中):
...
"@id": "/api",
"products" : "www.myshop.com/api/products",
"customers":"www.myshop.com/api/customers"
...
关于 hydra 的第一个问题,我如何在此处添加操作?似乎客户端需要在加载应用程序之前加载另一个文档。我的意思是潜在的行动不在从 www.myshop.com/api 检索到的文档中或者我错过了什么?
然后更进一步,我已经声明products是一个 hydra:Link 以便客户端可以使用 HTTP GET 跟随该链接(与其交互)并检索产品列表。这将是一个这样的列表:
....
{
"@id": "/api/products/123",
"@type": "vocab:Product"
},
{
"@id": "/api/products/124",
"@type": "vocab:Product"
},
....
在这里,客户收到一个产品列表(这可能是一个分页集合)。但是如果客户想要向用户展示它,假设一个带有[产品 ID、价格、名称]的表格(不是所有产品的属性)
第二个问题:如果没有客户端向服务器发送每个产品的请求,但仍然提供获取产品详细信息的链接,我怎么能做到这一点,(或者甚至这里有四个链接:一个用于获取详细信息,一个用于删除,一个用于与朋友分享,最后一个用于将其添加到篮子)?
事实上,如果文档本身没有链接,我很难弄清楚 hydra 是如何发挥作用的?我认为 Hal 使用这种方法在文档本身中添加链接(如果我是对的),我试图找出 hydra 是如何做这个链接的......
问候