问题标题几乎不言自明。可以在Orion中创建一个无id实体。id = .*
查询通常以无id的形式返回,尽管存在实体。但是,怎么会有人删除那个实体呢?这个请求显然不起作用:
{
"contextElements": [
{
"type": "",
"isPattern": "false",
"id": ""
}
],
"updateAction": "DELETE"
}
这是返回的查询:
{
"contextElement": {
"type": "",
"isPattern": "false",
"id": "",
"attributes": [
{
"name": "temp",
"type": "integer",
"value": "15"
},
{
"name": "pressure",
"type": "integer",
"value": "720"
}
]
},
"statusCode": {
"code": "200",
"reasonPhrase": "OK"
}
}
Orion中有一个已知的错误(现已修复)似乎是导致您出现问题的原因。基本上,Orion将URL末尾的最后一个"/"解释为一个空元素。
例如(如本期所述):
- v1/contextEntityTypes查询所有类型,而
- v1/contextEntityTypes/query仅用于空类型
在您的特定情况下,一些REST操作也会发生类似的情况。如果执行GET/v1/contextEntity,您将看到所有实体,包括空id实体。您可以使用GET/v1/contextEntity/查询该特定实体(注意最后的"/")。
然后,DELETE方法似乎没有使用相同的模式。因此,如果执行DELETE/v1/contextEntity/,则会得到一个未找到上下文元素。
所以,基本上,这是一个已知bug的另一种表现形式。