Как я могу удалить объект без идентификатора в Orion?

Название вопроса говорит само за себя. В Orion можно создать объект без идентификатора. Запрос id = .* обычно возвращает объект без идентификатора, хотя и существующий. Но как кто-то может удалить эту сущность? Этот запрос явно не сработал:

{
  "contextElements": [
   {
      "type": "",
      "isPattern": "false",
      "id": ""
    }
  ],
  "updateAction": "DELETE"
}

Это возвращаемый запрос:

{
            "contextElement": {
                "type": "",
                "isPattern": "false",
                "id": "",
                "attributes": [
                    {
                        "name": "temp",
                        "type": "integer",
                        "value": "15"
                    },
                    {
                        "name": "pressure",
                        "type": "integer",
                        "value": "720"
                    }
                ]
            },
            "statusCode": {
                "code": "200",
                "reasonPhrase": "OK"
            }
        }

person venge    schedule 02.04.2015    source источник
comment
как именно вы создали объект без идентификатора? Если я попытаюсь сделать это с помощью updateContext, я получу Bad Request, empty Id.   -  person LeandroGuillen    schedule 03.04.2015
comment
К сожалению, я не могу вспомнить, как я это делал, поэтому повторить это невозможно. И я не связывался с монго. Это 100% законный ответ экземпляра orion fiware-lab. Здесь: я добавил публичный IP. База данных предназначена только для тестирования, так что можете с ней повозиться, если хотите: 83.212.238.115:1026. Получите ответ и убедитесь сами.   -  person venge    schedule 03.04.2015


Ответы (1)


В Orion обнаружена известная ошибка (теперь исправлена), которая, по-видимому, вызывает проблема. В основном Orion интерпретирует последний «/» в конце URL-адреса как пустой элемент.

Например (как описано в выпуске):

  • v1/contextEntityTypes запросы для всех типов, а
  • v1/contextEntityTypes/ запросы только для пустого типа

В вашем конкретном случае нечто подобное происходит с некоторыми операциями REST. Если вы выполните GET /v1/contextEntities, вы увидите все объекты, включая объект с пустым идентификатором. Вы можете запросить этот конкретный объект с помощью GET /v1/contextEntity/ (обратите внимание на «/» в конце).

Кроме того, метод DELETE, похоже, не использует тот же шаблон. Поэтому, если вы выполните DELETE /v1/contextEntity/, вы получите Элемент контекста не найден.

Так что, по сути, это еще одно проявление известного бага.

person LeandroGuillen    schedule 03.04.2015