我想要实现的是拥有一个包含自定义数据的全局片段。此数据片段必须随时可从中央源访问,并且租户之间可能不同。所有设备都需要此数据
我有两个想法
租客: 将自定义数据保存到租户片段的最佳方法是什么?我尝试过使用以下请求,但没有运气。
PUT /tenant/tenants/tenant1 HTTP/1.1
Host: tenant1.enterpise.com
Content-Type: application/json
Accept: application/json
Authorization: Basic
{
"customFragment:{
"forms":[
{
"type": ....,
"inputa" : ...
},
.....
],
"products":[
{
"name": ....,
"stock" : ...
}
],
.....
}
}
我该怎么办?
将managementObject与自定义数据片段一起使用。
我可以使用管理对象进入数据库以实现这一目标吗?如果此管理对象没有isDevice属性,我会收费吗?
提前致谢!
答案 0 :(得分:2)
这两种方法在这里都有效
将其存储在租户对象中
您的请求(几乎)正确,但此请求无法与tenant1的用户执行。租户无法更新自己的租户对象。您需要从父租户(管理租户或如果它是另一个租户的子租户,您也可以从那里执行)执行此请求。 现在几乎部分:对于租户,你不能直接创建任意片段。您需要将自定义数据放入名为" customProperties"的片段中。你放在那个片段中的内容再次由你决定。
{
"customProperties" : {
"test": "test",
"abc": {
"test": 1
}
}
}
要访问此数据,您可以使用API / tenant / currentTenant。无论访问权限如何,此API始终可供每个经过身份验证的用户使用。它将返回租户信息(包括customProperties)。此API也是只读的,它类似于/ user / currentUser API。
在托管对象中存储
在库存API中,您可以添加片段" c8y_Global"到一个对象。这将使每个用户都可以使用此托管对象,无论访问权限如何(当然,您仍然需要有效的凭证给承租人。
{
"c8y_Global": {},
"myConfig": {
...
}
}
关于充电,请直接与您的平台提供商联系,但通常只有设备是充电的一部分,这不会被视为设备。仪表板也是btw,只有这种带有c8y_Global标志的managedObjects。