【问题标题】:How to filter results of an Azure Devops REST API GET request如何筛选 Azure Devops REST API GET 请求的结果
【发布时间】:2019-06-17 16:39:08
【问题描述】:

我正在尝试通过 Powershell 脚本收集有关 Azure Devops 版本的一些指标。

我的开发经验非常有限,并且是 PowerShell 的新手。这是我第一次使用 API。到目前为止,我已经能够进行身份验证、返回发布列表、遍历它们并将数据导出到文件中。现在我需要根据发布名称的子字符串过滤发布。作为记录,我一直在 Postman 中进行初始测试,以确保我的语法和结果是正确的。然后我将工作语法迁移到 Powershell。

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

如果我添加 id 过滤器,如下所示: https://{{organization}}.vsrm.visualstudio.com/{{project}}/_apis/release/releases?api-version=5.0&releaseId=34567

我得到这个结果:

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

但如果对 Release Name 使用相同的过滤格式, https://{{organization}}.vsrm.visualstudio.com/{{project}}/_apis/release/releases?api-version=5.0&releaseName="Test-Release-MyService"

我得到了 50 个结果,其中没有一个符合该条件,无论我是否将字符串括在引号中。此外,我真正想做的是让响应仅包含 releaseName 包含“XYZ”的记录。

所以问题是:“contains” 是否有过滤器运算符,所以我只能返回版本名称包含“XYZ”子字符串的记录?

提前感谢您的建议。

【问题讨论】:

  • 我没有办法对此进行测试,但我猜要使用的正确参数是“searchText”。请参阅 API 文档:docs.microsoft.com/en-us/rest/api/azure/devops/release/releases/… 我什至没有将“releaseName”视为有效参数。
  • 啊,我只是假设它是返回数据中的值之一,我可以对其进行过滤。但是您的评论是有道理的,如果它不是 URI 参数之一,则无法对其进行过滤。现在这似乎很明显,我很尴尬。因此,由于我无法过滤名称,我是否必须在每条记录进入时对其进行评估?
  • 没问题,容易犯错!看起来 searchText 的描述说:“名称包含 searchText 的版本。”看来您可以使用它按名称过滤?
  • 所以这似乎是我需要去的方向。但是当我使用它时,我仍然会得到 50 个不匹配的结果。我还缺少什么吗? https://vsrm.dev.azure.com/{{organization}}/{{project}}/_apis/release/releases?searchText =298&api-version=5.0
  • 嗯,我不确定是不是故意的,但是searchText后面有一个空格?否则,如果无法访问 API,我不确定您还能尝试什么。也许因为这与 API 特别相关,您可以尝试在 Microsoft 论坛中发帖?

标签: powershell azure-devops


【解决方案1】:

您在 Azure DevOps REST API 中使用的每个参数都需要与文档中的描述保持一致,Azure DevOps REST API 不支持自定义参数。对于您的问题,参数searchText 用于过滤包含关键字的发布名称的搜索结果。我已经用 POSTMAN 测试过调用 api,它工作正常。此外,参数searchText 的值不区分大小写。 Filter release name

如果你想做更多的过滤,其实你可以使用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/

【讨论】:

    猜你喜欢
    • 2020-10-22
    • 1970-01-01
    • 1970-01-01
    • 2021-04-20
    • 1970-01-01
    • 2023-03-26
    • 2019-12-03
    • 2021-08-29
    • 1970-01-01
    相关资源
    最近更新 更多