我不知道什么是正确的。根据文档,您可以在字段updateAction中同时使用APPEND和UPDATE。
实际的区别是什么?这与registerContext有何关联?
首先,APPEND/UPDATE与registerContext无关:APPEND/UPDATE用于updateContext请求,这是一个NGSI10操作,而registerContext是一个NG SI9操作。
一般规则是,当您必须在Orion context Broker中创建新的上下文元素(例如,现有实体中的新实体或新属性)时使用APPEND,当您更新现有上下文元素(如先前创建的实体/属性)时,使用UPDATE。
补充说明:
- 在不存在的上下文元素中使用UPDATE的updateContext将导致"未找到"错误响应
- 在不存在的上下文元素中使用APPEND的updateContext将导致创建该元素
- 在现有上下文元素中使用APPEND的updateContext将被解释为UPDATE(至少在Orion 0.12.0及以前版本中)
EDIT:Orion 0.24.0引入了APPEND _STRICT操作,该操作类似于APPEND,但如果要添加的属性已经存在,则返回错误。