Cumulocity 积云性:两个用于c8y_重启的响应模板,一个有,一个没有<;基础>;,为什么?

Cumulocity 积云性:两个用于c8y_重启的响应模板,一个有,一个没有<;基础>;,为什么?,cumulocity,Cumulocity,我正在实现一个客户端,以连接到使用积云性的物联网。在示例实现中,它们有一个模板集合。但是文件很差。我找到了两个用于c8y_重启的响应模板,但没有必要这样做 我已经从Cumulocity发送了重启请求,并用我的实现来回答它们。可以使用模板530成功设置状态。 使用模板501,我请求所有挂起的操作。但是所有的答案都是511,521则没有 这些是模板-请忽略“逃逸”和新行-它们来自C++代码< /p> "10,501,GET,/devicecontrol/operations?deviceId=%%&

我正在实现一个客户端,以连接到使用积云性的物联网。在示例实现中,它们有一个模板集合。但是文件很差。我找到了两个用于c8y_重启的响应模板,但没有必要这样做

我已经从Cumulocity发送了重启请求,并用我的实现来回答它们。可以使用模板530成功设置状态。 使用模板501,我请求所有挂起的操作。但是所有的答案都是511,521则没有

这些是模板-请忽略“逃逸”和新行-它们来自C++代码< /p>

"10,501,GET,/devicecontrol/operations?deviceId=%%&nocache=true&status=%%,,application/vnd.com.nsn.cumulocity.operationCollection+json,%%,UNSIGNED STRING,\n"
"11,511,$.operations,\"$.c8y_Restart\",\"$.id\",\"$.description\"\n"
"11,521,,\"@.c8y_Restart\",\"@.id\",\"@.description\"\n"
"10,530,PUT,/devicecontrol/operations/%%,application/vnd.com.nsn.cumulocity.operation+json,application/vnd.com.nsn.cumulocity.operation+json,%%,UNSIGNED STRING,\"{\"\"status\"\": \"\"%%\"\"}\"\n"
我得到的是,
$.operations
是父项的命名操作列表的选择器。字段
c8y\u Restart
id
description
返回


JSONPath的文档说明
@
对应于当前对象。模板521何时有用或使用?

通常,对于SmartREST 1.0,您通常需要两个响应模板进行操作。第一个模板(您的511)用于直接查询挂起的操作。此请求始终返回一个数组,这就是为什么需要一个带有数组基($.operations)的模板才能循环执行该数组的原因

如果您订阅实时操作,则需要第二个模板。在这种情况下,您收到的操作始终是单个对象,这就是为什么您不能在此模板中包含$.operations以使其正常工作的原因。这基本上是您的模板521,这也是为什么您在查询p时不会得到521的任何响应结束业务

我建议避免使用@并始终使用$。使用$您总是知道会发生什么,但使用@取决于积雨性如何管理JsonPath,它可能会导致您不想要的结果

SmartRest 2.0 for MQTT解决了每个操作需要2个响应模板的问题