FIWARE Orion:过滤订阅
FIWARE Orion: Filter subscriptions
我们使用 Orion 注册订阅。我们的应用程序中有两种订阅:
- 用户订阅:它们由用户使用我们的 GUI 创建。
- 内部订阅:它们被系统用于组件之间的通信。
问题是将两者区分开来,以便向用户呈现仅面向用户的订阅。
我可以使用订阅的哪个字段?例如,有一个字段 "type" 会很好。
一种解决方案是利用与订阅相关联的 description
字段来区分两种类型。
将来可能会很高兴在订阅(应用程序定义)中打开额外字段的可能性,并能够对订阅进行查询(目前无法完成的事情)。
我同意 Jose Manuel 所说的,这将是一个非常好的功能。
除了他的回复,同时我认为您可以在订阅中使用 "metadata" 字段来区分用户订阅和内部订阅。请记住,该字段不应该用于此目的,它是一种 "dark" 实现您想要的行为的方式。
这是使用我的方法创建订阅的示例。在这种情况下,您使用元数据字段 "isInternal" 创建一个订阅,它只是告诉您这是一个内部订阅。然后你可以使用另一个不同的元数据字段作为令牌,只是为了标识一个用户订阅:
curl -X POST \
http://localhost:1026/v2/subscriptions \
-H 'Content-Type: application/json' \
-d '{
"description": "A subscription to get info about Room1",
"subject": {
"entities": [
{
"id": "Room1",
"type": "Room"
}
],
"condition": {
"attrs": [
"temperature"
]
}
},
"notification": {
"http": {
"url": "http://localhost:1028/accumulate"
},
"attrs": ["temperature"],
"metadata": ["isInternal"]
}
}'
关于订阅中元数据字段的更多信息和他的正常使用请参考这个documentation。
我们使用 Orion 注册订阅。我们的应用程序中有两种订阅:
- 用户订阅:它们由用户使用我们的 GUI 创建。
- 内部订阅:它们被系统用于组件之间的通信。
问题是将两者区分开来,以便向用户呈现仅面向用户的订阅。 我可以使用订阅的哪个字段?例如,有一个字段 "type" 会很好。
一种解决方案是利用与订阅相关联的 description
字段来区分两种类型。
将来可能会很高兴在订阅(应用程序定义)中打开额外字段的可能性,并能够对订阅进行查询(目前无法完成的事情)。
我同意 Jose Manuel 所说的,这将是一个非常好的功能。
除了他的回复,同时我认为您可以在订阅中使用 "metadata" 字段来区分用户订阅和内部订阅。请记住,该字段不应该用于此目的,它是一种 "dark" 实现您想要的行为的方式。
这是使用我的方法创建订阅的示例。在这种情况下,您使用元数据字段 "isInternal" 创建一个订阅,它只是告诉您这是一个内部订阅。然后你可以使用另一个不同的元数据字段作为令牌,只是为了标识一个用户订阅:
curl -X POST \
http://localhost:1026/v2/subscriptions \
-H 'Content-Type: application/json' \
-d '{
"description": "A subscription to get info about Room1",
"subject": {
"entities": [
{
"id": "Room1",
"type": "Room"
}
],
"condition": {
"attrs": [
"temperature"
]
}
},
"notification": {
"http": {
"url": "http://localhost:1028/accumulate"
},
"attrs": ["temperature"],
"metadata": ["isInternal"]
}
}'
关于订阅中元数据字段的更多信息和他的正常使用请参考这个documentation。