Orion Context Broker Post ":" персонаж - PullRequest
0 голосов
/ 25 января 2019

Когда я выполняю POST-вызов к брокеру контекста Orion, и сущность "type": "geo: json" содержит символ ":", который я получаю:

{"error": "InternalError","description": "Ошибка базы данных (коллекция: orion-carouge.entities - insert (): {_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"
 },

}'\

Видимо, это не проблема вMongoDB of Orion. Я могу вставить «type»: «geo: json» в MongoDB. Возможно, некоторая проверка перед выполнением почтового вызова вызовет проблему. Любой вклад будет очень признателен.

1 Ответ

0 голосов
/ 27 января 2019

Мне кажется, проблема в том, что в вашем запросе есть две ошибки.

Во-первых, вы не можете использовать объект JSON в качестве типа сущности. Типы сущностей должны быть строками. Таким образом, вы должны использовать:

"type": "Traffic"

Во-вторых, объект GeoJSON, который вы используете для значения location, неверен. Точка использует единственную координату в 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"
 }                                      
}'
...