Fiware Orion批量复制

Fiware Orion批量复制,fiware,fiware-orion,Fiware,Fiware Orion,我使用APPEND\u STRICT,但在理解某个概念时遇到困难 例如,我在Fiware Orion中有一个实体(已经创建),我想使用APEND_STRINCT(v2/op/update)批量创建1000个实体 在1000个实体中有1个重复(我提到的一个实体已经在Orion中) 因此,如果这是正确的,Orion将抛出错误422,没有任何关于已经存在的实体id的信息,错误谈论实体的属性(我理解为什么它是APPEND_STRICT的概念),但显示它确实会有帮助 另一部分是,如果复制的实体位于位置40

我使用APPEND\u STRICT,但在理解某个概念时遇到困难

例如,我在Fiware Orion中有一个实体(已经创建),我想使用APEND_STRINCT(v2/op/update)批量创建1000个实体

在1000个实体中有1个重复(我提到的一个实体已经在Orion中)

因此,如果这是正确的,Orion将抛出错误422,没有任何关于已经存在的实体id的信息,错误谈论实体的属性(我理解为什么它是APPEND_STRICT的概念),但显示它确实会有帮助

另一部分是,如果复制的实体位于位置400,那么Orion发送错误,但继续写入剩余的实体,这真的很难管理,因为我不知道何时完成全部写入,并且在Orion仍在后台处理它们时,必须显示一些响应

我的假设是否正确,是否可以采取一些措施来避免这种我没有注意到的情况

谢谢

编辑

错误消息:

{ error: 'Unprocessable',
    description: 'one or more of the attributes in the request already exist: 
    [ family, serialNumber, refSortingType, description, refType, storedWasteOrigin, location, address, fillingLevel, cargoWeight, temperature, methaneConcentration, regulation, responsible, owner, dateServiceStarted, dateLastEmptying, nextActuationDeadline, actuationHours, openingHours, dateLastCleaning, nextCleaningDeadline, refDepositPointIsle, status, color, image, annotations, areaServed, dateModified, refDevice ]' } } }
请求示例:

{ method: 'POST',
 headers:
  { 'Content-Type': 'application/json',
    'Fiware-Service': 'waste4think',
    'Fiware-ServicePath': '/d',
    'X-Auth-Token': 'DssfKZe82e1dyJof416EmrQPdFQ3QK1' },
 uri: 'http://localhost:1026/v2/op/update',
 body: { actionType: 'APPEND_STRICT', entities: [Array] }

     {"actionType":"APPEND_STRICT","entities":[{"id":"xxx","type":"xxx","family":{"value":"Agent","type":"String","metadata":{}},"serialNumber":{"value":"","type":"String","metadata":{}},"refSortingType":{"value":"SortingType:2","type":"String","metadata":{}},"description":{"value":"","type":"String","metadata":{}},"refType":{"value":"DepositPointType:0","type":"String","metadata":{}},"storedWasteOrigin":{"value":"","type":"String","metadata":{}},"location":{"value":{"type":"Point","coordinates":[xxx]},"type":"geo:json"},"address":{"value":"xxxxx.","type":"String","metadata":{}},"fillingLevel":{"value":0,"type":"Float","metadata":{"unit":{"value":"C62","type":"String"}}},"cargoWeight":{"value":0,"type":"Float","metadata":{"unit":{"value":"KGM","type":"String"}}},"temperature":{"value":0,"type":"Float","metadata":{"unit":{"value":"CEL","type":"String"}}},"methaneConcentration":{"value":0,"type":"Float","metadata":{"unit":{"value":"59","type":"String"}}},"regulation":{"value":"Municipal association","type":"String","metadata":{}},"responsible":{"value":"","type":"String","metadata":{}},"owner":{"value":"xxx","type":"String","metadata":{}},"dateServiceStarted":{"value":"","type":"String","metadata":{}},"dateLastEmptying":{"value":"","type":"String","metadata":{}},"nextActuationDeadline":{"value":"","type":"String","metadata":{}},"actuationHours":{"value":[],"type":"List","metadata":{}},"openingHours":{"value":[],"type":"List","metadata":{}},"dateLastCleaning":{"value":"","type":"String","metadata":{}},"nextCleaningDeadline":{"value":"","type":"String","metadata":{}},"refDepositPointIsle":{"value":"","type":"String","metadata":{}},"status":{"value":"ok","type":"String","metadata":{}},"color":{"value":"","type":"String","metadata":{}},"image":{"value":"","type":"String","metadata":{}},"annotations":{"value":"","type":"String","metadata":{}},"areaServed":{"value":"","type":"String","metadata":{}},"dateModified":{"value":"","type":"String","metadata":{}},"refDevice":{"value":"","type":"String","metadata":{}}}]}

至于请求,我将文章部分和正文部分分开。正如您从错误中看到的,msg不可能知道是什么实体导致了这种情况,我认为功能正如您所描述的。猎户座用已经存在但不属于哪个实体的属性列表进行响应。这样的回答可能更有用:

'one or more of the attributes in the request already exist: 
   entity23: [ family, serialNumber], entity 42: [refSortingType, description]'
有一些上限(例如多达20个实体),以排除过大的响应

如果您认为实现这样的东西可能是不必要的,请在Orion存储库中创建

一些补充意见:

  • APPEND\u STRICT
    。正确的关键字是
    appendStrict
  • 关于
    “Orion发送错误,但继续写入剩余实体,这确实很难管理,因为我无法知道何时完成全部写入,并且必须在Orion仍在后台处理它们时显示一些响应”
    。Orion直到在
    POST/v2/op/entity
    请求中完成对整个批次的处理后才会响应。因此,您的REST客户机可以确保在收到响应时,所有内容都已处理(尽管处理过程可能会由于某些实体中的重复属性而导致错误,正如我们所讨论的)。你有没有经历过不同的行为?那样的话,你是怎么得到的?(猎户座的行为可能是一个bug,为了调试它,我想知道)

我认为功能如您所述。猎户座用已经存在但不属于哪个实体的属性列表进行响应。这样的回答可能更有用:

'one or more of the attributes in the request already exist: 
   entity23: [ family, serialNumber], entity 42: [refSortingType, description]'
有一些上限(例如多达20个实体),以排除过大的响应

如果您认为实现这样的东西可能是不必要的,请在Orion存储库中创建

一些补充意见:

  • APPEND\u STRICT
    。正确的关键字是
    appendStrict
  • 关于
    “Orion发送错误,但继续写入剩余实体,这确实很难管理,因为我无法知道何时完成全部写入,并且必须在Orion仍在后台处理它们时显示一些响应”
    。Orion直到在
    POST/v2/op/entity
    请求中完成对整个批次的处理后才会响应。因此,您的REST客户机可以确保在收到响应时,所有内容都已处理(尽管处理过程可能会由于某些实体中的重复属性而导致错误,正如我们所讨论的)。你有没有经历过不同的行为?那样的话,你是怎么得到的?(猎户座的行为可能是一个bug,为了调试它,我想知道)

为了完全确定您的问题,您能否对其进行编辑,以包含请求草案(当然不是所有1000个实体,而是其中的一部分)和您得到的答复?谢谢为了完全确定您的问题,您能否编辑它以包含请求草案(当然不是所有1000个实体,而是其中的一部分)和您得到的答复?谢谢