在当前版本的 Orion Context Broker 0.23.0 中,新增功能之一是支持根据属性值过滤实体 (NGSI v2)。我当前正在执行 GET 操作,如所示http://telefonicaid.github.io/fiware-orion/api/v2/我得到的是整个实体集,没有过滤操作。您能否在这方面帮助我提供一个关于如何使用新的 REST API NGSI v2 的清晰示例?
预先非常感谢
NGSIv2 过滤功能基于以下操作:
GET /v2/entities?q=<query_string>
where query_string
指定查询字符串中定义的NGSiv2 规范文档。例如,要获取所有实体temperature
小于 24,其中humidity
范围在 75 到 90 之间,其中status
正在“运行”,使用以下操作:
GET /v2/entities?q=temperature<24;humidity==75..90;status=running
您还可以使用“传统”NGSIv1 进行查询,使用scope
领域中的POST /v1/queryContext
有效负载。相同的查询将通过以下方式完成:
POST /v1/queryContext
{
"entities": [
{
"type": "",
"isPattern": "true",
"id": ".*"
}
],
"restriction": {
"scopes": [
{
"type": "FIWARE::StringQuery",
"value": "q=temperature<24;humidity==75..90;status=running"
}
]
}
}
The 以下链接提供附加信息。
请注意,某些过滤器(例如大于/小于、范围等)假定属性值本机类型是数字。请考虑到 NGISv1 创建/更新属性的操作始终将值转换为字符串(由于 XML 兼容性,NGSIv2 中不再保留)。因此,如果您需要将属性值存储为数字以应用大于/小于、范围等过滤器,则使用 NGSIv2 操作来创建/更新这些属性。该警告在中进行了更详细的解释以下文档.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)