Как отфильтровать результаты запроса GET API REST API Azure Devops - PullRequest
0 голосов
/ 14 июня 2019

Я пытаюсь собрать некоторые показатели для выпусков в Azure Devops с помощью скрипта Powershell.

У меня очень ограниченный опыт разработки и я новичок в PowerShell. И это первый раз, когда я работал с API. До сих пор мне удавалось проходить аутентификацию, возвращать список выпусков, проходить через них и экспортировать данные в файл. Теперь мне нужно отфильтровать выпуски по подстроке в названии релиза. Для справки: я проводил первоначальное тестирование в Postman, чтобы убедиться в правильности моего синтаксиса и результатов Затем я перенес рабочий синтаксис в Powershell.

https://{{organization}}.vsrm.visualstudio.com/{{project}}/_apis/release/releases?api-version=5.0

Если я добавлю идентификатор фильтра, как показано здесь: https://{{organization}}.vsrm.visualstudio.com/{{project}}/_apis/release/releases?api-version=5.0&releaseId=34567

Я получаю этот результат:

"id": 34567, "name": "Test-Release-MyService",

Но если использовать тот же формат фильтра для названия выпуска, https://{{organization}}.vsrm.visualstudio.com/{{project}}/_apis/release/releases?api-version=5.0&releaseName="Test-Release-MyService"

Я получаю 50 результатов, ни один из которых не соответствует этому критерию, независимо от того, заключаю я строку в кавычки или нет. Кроме того, я действительно хочу, чтобы ответ включал только записи, в которых releaseName содержит «XYZ».

Итак, вопрос: есть ли оператор фильтра для , «содержащий» , поэтому я получаю только те записи, в которых название выпуска содержит подстроку «XYZ»?

Заранее спасибо за совет.

1 Ответ

0 голосов
/ 17 июня 2019

Каждый параметр, который вы использовали в API-интерфейсе REST Azure DevOps, должен соответствовать описанию в документе. API-интерфейс REST Azure DevOps не поддерживает пользовательские параметры. Для вашего вопроса параметр searchText используется для фильтрации результатов поиска по названию выпуска, содержащему ключевое слово. Я проверил с POSTMAN для вызова API, он работает нормально. Кроме того, значение параметра searchText не чувствительно к регистру. Название выпуска фильтра

Если вы хотите сделать больше фильтров, на самом деле вы можете использовать powershell или другую клиентскую библиотеку для десериализации ответа json на объект и выполнить какое-либо преобразование или фильтрацию. Следующие документы могут быть полезны для вас:

https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/convertfrom-json?view=powershell-6 https://devblogs.microsoft.com/scripting/playing-with-json-and-powershell/

...