当我对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”。可能在进行后期调用之前进行了一些验证,从而导致了问题。任何贡献将不胜感激。
答案 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"
}
}'