Запрос JSONPath и JSONPath Builder

Компоновщик JSONPath Builder – это вспомогательная утилита, используемая при создании активных мониторов и мониторов производительности REST API, а также компонентов активного мониторинга и мониторинга производительности приложений REST API (APM). Этот инструмент помогает пользователям выбрать элемент JSON для мониторинга и создает запрос JSONPath для выбранного элемента JSON.

Запрос JSONPath может быть составлен в двух стилях, в нотации со скобками и точками, например:

В этом разделе описывается рабочий процесс и поддерживаемый синтаксис компоновщика JSONPath.

JSONPath Builder в мониторе производительности REST API

При добавлении нового монитора производительности REST API из библиотеки мониторов открывается окно Добавить монитор производительности REST API. Это окно содержит два связанных раздела, REST API и JSONPATH, которые используются в компоновщике JSONPath.

Укажите имя, описание и значение тайм-аута монитора производительности REST API, а затем выполните следующие действия, чтобы использовать компоновщик JSONPath:

  1. Укажите конечную точку URL REST API, для которой нужно получить показатели производительности.
  2. (Дополнительно) Добавьте настраиваемые заголовки с помощью кнопки Изменить настраиваемые заголовки.
  3. (Дополнительно) Установите Игнорировать ошибки сертификатов, если нужно подавить сообщения об ошибках сертификатов.
  4. (Дополнительно) Установите Использовать анонимный доступ, чтобы обойти отправку учетных данных REST API в конечную точку. Этот параметр действителен только в том случае, если конечная точка REST API не требует аутентификации для доступа.
  5. Нажмите кнопку JSONPath Builder. Если URL REST API действителен, откроется окно компоновщика JSONPath. В этом окне можно выбрать числовое поле, которое нужно отслеживать для получения данных о производительности. На следующем изображении показано окно JSONPath Builder с примером данных "Children's Library":

jsonpath_builder

  1. Нажмите Проверить для запуска теста конечной точки. Если монитор производительности может извлечь числовой результат из значения конечной точки JSONPATH, то монитор можно сохранить и добавить в библиотеку мониторов производительности. На следующем рисунке показан пример JSONPath, который возвращает допустимое числовое значение в монитор производительности, созданный с помощью компоновщика JSONPath:

REST_API_Perf_Monitor_jsonpath

JSONPath Builder в активном мониторе REST API

При добавлении нового активного монитора REST API из библиотеки мониторов открывается окно Добавить активный монитор REST API. Это окно состоит из двух связанных разделов, REST API и Неактивное состояние, которое включает таблицу Запрос JSONPath для добавления условий неактивного состояния монитора. В таблице Запрос JSONPath при выборе кнопки увеличительного стекла используется JSONPath Builder.

При работе с активными мониторами REST API можно определить несколько запросов JSONPath для оценки неактивного состояния монитора. Кроме того, в отличие от мониторов производительности, активные мониторы поддерживают проверку условий неактивности для переменных числовых, логических и строковых типов.

При выборе элемента JSON в компоновщике JSONPath таблица "Запрос JSONPath" автоматически определяет тип элемента и вводит его в столбец Тип в таблице "Запрос JSONPath".

Укажите имя, описание и значение времени ожидания активного монитора REST API, а затем выполните следующие действия для использования JSONPath Builder:

  1. Укажите конечную точку URL REST API, для которой нужно получить показатели производительности.
  2. (Дополнительно) Добавьте настраиваемые заголовки с помощью кнопки Изменить настраиваемые заголовки.
  3. (Дополнительно) Установите Игнорировать ошибки сертификатов, если нужно подавить сообщения об ошибках сертификатов.
  4. (Дополнительно) Установите Использовать анонимный доступ, чтобы обойти отправку учетных данных REST API в конечную точку. Этот параметр действителен только в том случае, если конечная точка REST API не требует аутентификации для доступа.
  5. Выберите коды ответов HTTP, которые будут сообщать о том, что монитор неактивен.
  6. Нажмите кнопку +, чтобы добавить строку в таблицу "Запрос JSONPath". По умолчанию строка пуста.
  7. Дважды щелкните в пустой строке в таблице "Запрос JSONPath", а затем нажмите кнопку с увеличительным стеклом, чтобы открыть компоновщик JSONPath. Будет предложено ввести Учетные данные REST API, если не установлен флажок Использовать анонимный доступ. Откроется окно компоновщика JSONPath. В этом окне можно выбрать конечную точку числового, логического или строкового типа для отслеживания на предмет условий неактивного состояния. На следующем рисунке показан пример условий неактивного состояния для примера API для библиотечных книг:
    REST_API_Active_Monitor_jsonpath
  8. Нажмите Сохранить, чтобы добавить монитор в библиотеку активных мониторов.

JSONPath Builder в компоненте мониторинга приложений производительности REST API (APM)

Компонент мониторинга производительности приложений REST API (APM) работает аналогично монитору производительности REST API с добавлением условий предупреждения и порога неактивности для числового значения ответа. Компонент APM REST API можно подключить к тестовому устройству и проверить. На следующем изображении показан пример числовой конечной точки API с пороговыми значениями предупреждения и неактивности:
REST_API_APM_perf

JSONPath Builder в компоненте активного мониторинга приложений REST API (APM)

Компонент активного мониторинга приложений REST API (APM) работает аналогично активному монитору REST API с добавлением тестового устройства, к которому можно подключить компонент активного мониторинга APM REST API и проверить монитор.

Расширенные запросы JSONPath

Как уже упоминалось, запрос JSONPath может быть составлен в двух стилях, в нотации со скобками и точками:

Если бы существовал массив JSON «books», где первый элемент в массиве имел имя «The Cat in the Hat», можно вызвать это значение, введя один из следующих запросов JSON:

В дополнение к поддержке создания запросов JSONPath для элементов JSON с помощью JSONPath Builder, также можно создавать расширенные запросы для проверки ответа JSON с помощью фильтров в запросах JSONPath. Фильтры можно использовать для выполнения операций с использованием операторов сравнения. Кроме того, свойство "length" доступно для возврата размера массива JSON.

Эти свойства можно использовать в фильтре запросов JSONPath для возврата значений на основе условий и отфильтровывания ненужных значений.

Note: Селектор токенов возвращает значение только в том случае, если захваченный объект имеет длину 1. Если запрос JSONPath вернет несколько значений, выдается ошибка синтаксического анализа.

Поддерживаемые операторы сравнения перечислены в следующей таблице:

Имя оператора сравнения

Оператор сравнения

Пример (нотация со скобками)

Пример (нотация с точками)

Примечания

Равно

==

['books'][?(@.name == 'The Cat in the Hat')]['copies']

$.books[?(@.name == 'The Cat in the Hat')].copies

Запрос возвращает количество имеющихся копий «Кота в шляпе».

Не равно

!=

['books'][?(@.name != 'The Cat in the Hat')]['copies']

$.books[?(@.name != 'The Cat in the Hat')].copies

 

Менее чем

<

['books'][?(@.copies < 3)]

$.books[?(@.copies < 3)]

Для активных мониторов и активных компонентов APM условием неактивности будет строка, содержащая «Кот в шляпе», например, если строка «Кот в шляпе» содержит менее 3 копий.

Меньше или равно

<=

['books'][?(@.copies <= 3)]

$.books[?(@.copies <= 3)]

 

Более чем

>

['books'][?(@.copies > 1)]['bookId']

$.books[?(@.copies > 1)].bookId

Для активных мониторов и активных компонентов APM условием неактивности может быть число, не содержащее 1 (идентификатор книги «Кот в шляпе»), например, если строка «Кот в шляпе» содержит более 1 копии.

Больше или равно

>=

['books'][?(@.copies > 1)]['bookId']

$.books[?(@.copies > 1)].bookId

 

Длина

.length

['books'].length

$.books.length

Возвращает длину массива JSON.