HATEOAS - 刷新页面时加载资源

HATEOAS - Load resource when refresh the page

我从 HATEOAS 开始,我有一个简单的问题。当我想通过 ID 加载特定资源时,最好的方法是什么?目前我向 /root 路由请求,这条路由给我一个 link 像这样:

{ "rel": "order", "href": "http://api.com/orders/:id" }

使用模板字符串是个好方法吗?

另一个问题是:当我有 10 种资源类型时,我需要在根响应中放置 10 次吗?

反问 - 你的id从哪里来的?

我假设在 link 之后爬过你的 API - 但你为什么不保存服务器返回的整个 link,而不是只保存身份证号?

这实际上是 HATEOAS 的想法:你的 API 是可探索的,你宁愿只使用 API 返回的 link,而不是组装你的拥有您从资源中提取的 ID。

优点是当 API 更改时(路径重命名等),您无需更改客户端代码。

但是,如果您需要将 link 保存更长时间(例如,当您想以某种形式将它们加入书签时),这可能不是一个好的策略。

那么最好使用 link 模板,正如您所建议的,并从根资源(或从易于访问的合适的子资源)中检索 link 的模板来自根资源)。

像这样你可以确保你总是有有效的 links,但是,是的,这也意味着你必须把它们都放在那里(或者至少是你支持的深度 link ]ing).

为了表达模板化的links,你可以使用HAL: stateless.co/hal_specification.html