Orion Context Broker发布“:”字符

时间:2019-01-25 13:21:02

标签: post fiware fiware-orion

当我对Orion Context Broker和实体进行POST调用时  “ type”:“ geo:json”包含我获得的“:”字符:

{“错误”:“内部错误”,“描述”:“数据库错误(集合:orion-carouge.entities-插入():{_id:{id:“ 10_Place_Nations”。...

curl -X POST \
 http://<entityID>:port/v2/entities \
 -H 'Content-Type: application/json' \
 -H 'fiware-service:carouge' \
 -H 'Fiware-ServicePath:/Traffic' \
 -d '{ "type": {
    "value": "Traffic"
 },
 "dateObserved": {
   "value": "2019-05-22T21:26:00"
 },
 "id": "10_Place_Nations",
 "location": {
   "value": {
     "coordinates": [
       [
         6.130983321064038,
         46.21602766413273
       ]
     ],
     "type" : "Point"
   },
   "type": "geo:json"
 },

}'\

显然,在Orion的MongoDB中这不是问题。我可以在MongoDB中插入“ type”:“ geo:json”。可能在进行后期调用之前进行了一些验证,从而导致了问题。任何贡献将不胜感激。

1 个答案:

答案 0 :(得分:0)

我认为问题在于您的请求有两个错误。

首先,您不能使用JSON对象作为实体类型。实体类型必须是字符串。因此,您必须使用:

"type": "Traffic"

第二,您用于location值的GeoJSON对象不正确。 Point使用coordinates中的一个坐标,而不是列表。

总而言之,以下请求将起作用:

curl -X POST \
 http://localhost:1026/v2/entities \
 -H 'Content-Type: application/json' \
 -H 'fiware-service:carouge' \
 -H 'Fiware-ServicePath:/Traffic' \
 -d '{ "type": "Traffic",
 "dateObserved": {
   "value": "2019-05-22T21:26:00"
 },                              
 "id": "10_Place_Nations",       
 "location": {
   "value": {
     "coordinates": [       
         6.130983321064038,
         46.21602766413273     
     ],                  
     "type" : "Point"
   },                
   "type": "geo:json"
 }                                      
}'