首页 > 解决方案 > 如何使用 JSON HAL

问题描述

我正在为我的学士论文开发一个 REST api,现在我想定义资源。REST api 正在接收来自 OPC UA 客户端的数据。我想介绍的是获取节点,获取节点的单个属性和引用(对其他节点)。我还希望能够更新节点的单个属性,浏览引用并订阅节点的属性。

我现在的资源是:

/:nodeid (GET)
/:nodeid/attributes (GET)
/:nodeid/attributes/:attribute (GET, PUT, POST to start a subscription via websocket)
/:nodeid/references (GET)

当谈到 JSON HAL 时,我有点困惑。我应该对 :nodeid 下的子资源使用 _embedded 还是 _links ?

我什至应该使用“属性”和“参考”之类的列表资源吗?真正让我抓狂的是过度和不足。在当前的实现中,如果我使用列表,我的 :nodeid 的结果不会被过度提取,但是当涉及到特定属性时,我会进行提取不足,因为我必须发出另一个请求来获取属性列表。 ..如果我在 _links 中包含所有属性,我可能已经有了一个列表。

但是通过 _links 包含所有属性和引用将是过度获取,特别是如果一个节点可以有数千个引用和很多属性。

标签: jsonapiresthal

解决方案


推荐阅读