FIWARE Orion:过滤订阅

FIWARE Orion: Filter subscriptions

我们使用 Orion 注册订阅。我们的应用程序中有两种订阅:

问题是将两者区分开来,以便向用户呈现仅面向用户的订阅。 我可以使用订阅的哪个字段?例如,有一个字段 "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