Fiware 我们可以使用关系交叉引用不同服务路径中的实体吗?

Fiware 我们可以使用关系交叉引用不同服务路径中的实体吗?,fiware,fiware-orion,Fiware,Fiware Orion,我们使用的是FIWARE Orion NGSI V2版本。我们正在尝试创建一个数据模型,其中实体存在于不同的服务路径中,并且这些实体通过关系相互连接 我们查看了FIWARE文档,没有找到任何关于如何实现这一点的答案 { "orion" : { "version" : "2.4.0-next", "uptime" : "0 d, 0 h, 1 m, 7 s", "git_has

我们使用的是FIWARE Orion NGSI V2版本。我们正在尝试创建一个数据模型,其中实体存在于不同的服务路径中,并且这些实体通过关系相互连接

我们查看了FIWARE文档,没有找到任何关于如何实现这一点的答案

{
"orion" : {
  "version" : "2.4.0-next",
  "uptime" : "0 d, 0 h, 1 m, 7 s",
  "git_hash" : "4f26834ca928e468b091729d93dabd22108a2690",
  "compile_time" : "Tue Mar 31 16:21:23 UTC 2020",
  "compiled_by" : "root",
  "compiled_in" : "3369cff2fa4c",
  "release_date" : "Tue Mar 31 16:21:23 UTC 2020",
  "doc" : "https://fiware-orion.rtfd.io/"
}
请查收附件中我们正在努力实现的图示。还有我们正在使用的FIWARE Orion版本。要在不同服务路径中的实体之间创建的“连接到”关系。你能指导我们如何做到这一点吗

{
"orion" : {
  "version" : "2.4.0-next",
  "uptime" : "0 d, 0 h, 1 m, 7 s",
  "git_hash" : "4f26834ca928e468b091729d93dabd22108a2690",
  "compile_time" : "Tue Mar 31 16:21:23 UTC 2020",
  "compiled_by" : "root",
  "compiled_in" : "3369cff2fa4c",
  "release_date" : "Tue Mar 31 16:21:23 UTC 2020",
  "doc" : "https://fiware-orion.rtfd.io/"
}
}


fiware servicepath标题旨在以分层方式对系统进行逻辑划分,默认情况下假定为
/
分层

如果您创建以下内容:

curl -L -X POST 'http://localhost:1026/v2/entities/' \
-H 'fiware-servicepath: /pigs' \
-d {
    "id": "urn:ngsi-ld:Animal:001",
    "type": "Animal",
}'
curl -L -X GET 'http://localhost:1026/v2/entities' \
-H 'fiware-servicepath: /cows' 
您只能通过请求以下内容来检索
cows

curl -L -X POST 'http://localhost:1026/v2/entities/' \
-H 'fiware-servicepath: /pigs' \
-d {
    "id": "urn:ngsi-ld:Animal:001",
    "type": "Animal",
}'
curl -L -X GET 'http://localhost:1026/v2/entities' \
-H 'fiware-servicepath: /cows' 
您可以通过请求来检索
奶牛

curl -L -X GET 'http://localhost:1026/v2/entities' \
-H 'fiware-servicepath: /#' 
因此,如果您的关系是跨层次的,那么在检索实体时,您只需要提供带有通配符服务路径的
fiware servicepath


请注意,如果数据位于较长的服务路径下(例如
/anies/cows
anies/pigs
),则您可以根据需要使用
/anies/#
/#

您只需要以下三个属性:

  • XXXSource
    ,用于实体的de ID
  • XXXSourceType
    ,用于实体的类型
  • XXXSourcePath
    ,用于实体的服务路径
其中,
XXX
是一个标记,用于指定关系的名称(如果需要区分其中的许多关系)。例如:

  • managerSource
  • managerSourceType
  • managerSourcePath
其他命名变体也是可能的,例如

  • refXXX
  • refXXXType
  • refXXXPath

我不建议使用FIWARE服务路径。你可以很容易地得到一个系统,它有重复的ID和一团混乱


在链接数据和分布式场景中,您可以使用指向多个代理或系统中实体的指针,只需使用URI通过关系指向实体。

感谢Jose和Jason的回答。非常感谢您在这方面的帮助和支持。我们正在考虑您提供的两种选择。然而,为了更好地理解您的解决方案,您可以向我们展示一个实体的JSON表示示例,其中包含指向不同代理/系统的指针。我们只是想了解这些交叉引用的指针是什么样子。