繁体   English   中英

Orion Context Provider 查询多个实体

[英]Orion Context Provider query multiple entities

税务信息系统包含有关该市每个公民的所有税务信息。

遵循 FIWARE 原则,消费者向 Orion 查询实体(公民)税务信息,并将请求转发给上下文提供者(即:TaxInformationSystem)似乎是有意义的。

Query citizen X tax information -> Orion -> TaxInformationSystem_CP

根据文档,上下文提供者可以将自己注册为特定属性的来源。 例如,这可以使这项工作:

http://{{orion}}/v2/entities/urn:citizenID/attrs/name/tax

但是,这似乎要求每个公民都注册为一个实体,因此税务信息系统应该注册多次(每个公民一个)。 (还有居住信息系统、健康信息系统,还有……)

"entities": [
  {
    "id" : "citizenID",      //one per citizen ???
    "type": "taxInformation"
  }
],

至少,这似乎是很多不必要/多余的工作。

阅读更多后, 似乎尚未实施/支持任何解决方法

  • 似乎我不能使用查询参数http://{{orion}}/v2/entities/tax?citizen=X ,因为它们没有转发给 CP
  • 如果没有先明确创建实体,似乎我无法查询任何公民税http://{{orion}}/v2/entities/X/tax
  • 似乎我无法设置idPattern (目前仅。*支持),因为它会返回所有公民税,因为经纪人没有转发请求,也没有将实体过滤到 CP
  • 既不是 typePattern

(IIUC, isPattern现在似乎已弃用,取而代之的是 idPattern/typePattern)

难道我做错了什么? 每个公民注册一次是 go 的唯一途径吗?

在 FIWARE 中,以及在每个系统或平台中,都有更多使用和成熟的功能,而另一些则更具实验性和令人头晕目眩。 真实用例和真实客户对某些功能(以及在现实生活和实际部署中的使用)的要求越多,他们就会得到更多的整合、证明和扩展。 注册的情况并非如此,复杂的联合场景不在当前的 state 中。 我同意它们启用了一些非常有趣的实验用例,但在实际部署中,联合场景增加了额外的复杂性,使它们在这个阶段不受欢迎。

不知道我是否完全理解你的情况......

您可以像这样为所有公民进行注册:

{
  "dataProvided": {
    "entities": [
      {
        "idPattern": ".*",
        "type": "taxInformation"
      }
    ],
    "attrs": [
      ...
  },
  "provider": {
    "http": {
      "url": "http://thetaxsystem.com"
    }
  }
}

因此,如果您想获取特定公民的税务信息,您可以在 CB 执行以下操作:

GET /v2/entities/1234567H?type=taxInformation

并且该注册将导致将请求作为上下文提供者发送到税务系统。

编辑: Context Broker ( this one ) 存在一个问题,它阻止了这个案例的工作。 特别是第二种情况:

regR = .* , 查询 = 'E', attrs = {null}

EDIT2:上述案例已在 Orion Context Broker 中解决。 它现在在 master 分支中可用(dockerhub 中的:latest标签),并将包含在下一个 Orion Context Broker 版本(3.1.0)中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM