Фильтровать по значению атрибута в Orion Context Broker 0.23.0

В текущей версии Orion Context Broker, 0.23.0, одной из новых добавленных функций является то, что он поддерживает фильтрацию объектов в соответствии со значениями атрибутов (NGSI v2). В настоящее время я выполняю операции GET, как указано в http://telefonicaid.github.io/fiware-orion/api/v2/ и я получаю весь набор объектов, без действия фильтрации. Не могли бы вы помочь мне в этом отношении наглядным примером использования нового REST API NGSI v2?

заранее большое спасибо

1 ответ

Решение

Возможности фильтрации NGSIv2 основаны на следующей операции:

GET /v2/entities?q=<query_string>

где query_string задает строку запроса, как определено в документе спецификации NGSIv2. Например, чтобы получить все объекты, которые temperature меньше 24, что humidity находится в диапазоне от 75 до 90 и который status "работает", используйте следующую операцию:

GET /v2/entities?q=temperature<24;humidity==75..90;status=running

Вы также можете выполнять запросы, используя "традиционный" NGSIv1, используя scope поле в POST /v1/queryContext полезная нагрузка. Тот же запрос будет выполнен следующим образом:

 POST /v1/queryContext

 {
  "entities": [
      {
      "type": "",
      "isPattern": "true",
      "id": ".*"
      }
  ],
  "restriction": {
      "scopes": [
        {
          "type": "FIWARE::StringQuery",
          "value": "q=temperature<24;humidity==75..90;status=running"
        }
      ]
    }
 }

Следующая ссылка предоставляет дополнительную информацию.

Обратите внимание, что некоторые фильтры (например, больше / меньше, диапазоны и т. Д.) Предполагают, что значение атрибута native-тип является числом. Учтите, что операции NGISv1 для создания / обновления атрибутов всегда преобразуют значения в строки (из-за совместимости с XML, более не поддерживаемой в NGSIv2). Таким образом, если вам нужно сохранить значения атрибутов в виде числа, чтобы применить фильтры "больше / меньше", "диапазоны" и т. Д., То используйте операции NGSIv2 для создания / обновления этих атрибутов. Предупреждение поясняется более подробно в следующем фрагменте документации.

Другие вопросы по тегам