【发布时间】:2014-10-10 15:55:53
【问题描述】:
暂且:抱歉,如果我误解了超媒体或 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"
},
....
在这里,客户收到产品列表(可能是分页集合)。但是如果客户想要向用户展示它,假设是一张带有 [product Id, price, name] 的表格(不是所有 Product 的属性)
第二个问题:如果没有客户端向服务器发送每个产品的请求,但仍然提供链接以获取产品的详细信息,我怎么能做到这一点,(甚至这里有四个链接:一个用于获取详细信息,一个用于删除,一个用于与朋友分享,最后一个用于将其添加到购物篮)?
事实上,如果文档本身没有链接,我很难弄清楚 hydra 是如何发挥作用的?我认为 Hal 使用这种方法在文档本身中添加链接(如果我是对的),我试图找出 hydra 是如何做这个链接的......
问候
【问题讨论】:
标签: rest restful-architecture json-ld hypermedia hydra-core