使用 top - 参数从 TFS-API 获取构建

Posted

技术标签:

【中文标题】使用 top - 参数从 TFS-API 获取构建【英文标题】:Get builds from TFS-API using top - Parameter 【发布时间】:2020-07-20 22:28:23 【问题描述】:

我想获取我的 TFS 的最后构建的列表。 API 通常运行良好 - 但我不明白“$top”参数的工作原理。

如果我使用没有***参数的简单 API 调用:

https://mytfs/project/_apis/build/builds?buildQueryOrder=finishTimeAscending

我得到了最多 1000 个结果,正确排序,最新的在最前面/最前面。

如果我添加 $top-Parameter:

https://mytfs/project/_apis/build/builds?$top=10&buildQueryOrder=finishTimeAscending

我得到 10 个结果 - 但不是较大列表中的前 10 个 - 而是 10 个随机结果(但总是相同的 10 个 - 因此不是真正随机的)。但这不是最新的 10 个或最旧的 10 个 - 只是 1000 个中的 10 个。

我是否理解 $top-Parameter 错误?或者这是 TFS API 中的错误?

【问题讨论】:

【参考方案1】:

更新

很抱歉造成误解。这是设计使然就像描述一样。它只会返回构建的最大数量不按返回结果的顺序排列

也就是说,如果你使用 $top 参数,它将获取所有构建结果的 10 个结果,然后对返回的 10 个结果进行排序。它不会先对所有构建结果进行排序,然后再获取排序的构建结果中的前 10 个。也许这就是混乱所在。

对于您要查找的内容,现有参数不可用。首先正确排序只能获得最多 1000 个结果。最后取出其中的 10 个。


$top 参数不是字面意思。它只会返回最大构建数

$top integer int32 要返回的最大构建数。

你可以参考官方文档:Builds - List

【讨论】:

不起作用。我使用了一些 order 参数。 1000 的列表是正确排序的。 10 的列表也正确排序。但它并不是预期的大名单的前 10 名。 @Konrad But it is not the top 10 of the large list as expected. 很抱歉造成误解。就像描述一样,这是设计使然。如果使用 $top 参数,它将获取所有构建结果的 10 个结果,然后对返回的 10 个结果进行排序。它不会先对所有构建结果进行排序,然后再获取排序的构建结果中的前 10 个。也许这就是混乱的地方。对于您要查找的内容,它不适用于现有参数。首先正确排序只能获得最多 1000 个结果。最后获取其中的 10 个。 嗨@Konrad,您对此问题还有其他顾虑吗?您要查找的内容不可用。给您带来的不便,我们深表歉意。 因此 $top-Parameter 是无用的 - 应该重命名为 "randomCount" ;-)

以上是关于使用 top - 参数从 TFS-API 获取构建的主要内容,如果未能解决你的问题,请参考以下文章

iOS 从带有 JSON 参数的 AFNetworking HTTP POST 方法获取 JSON 响应

使用 top 从 PID 和 COMMAND 获取前 5 行

使用 pywinauto 获取窗口参数(上、下、右、左)

使用flask python在网络浏览器中获取'top' linux命令的实时输出

使用 PDF.js ,是不是可以从 pdf 文件中获取链接 URL 及其相对坐标( X_Y || top_left 的位置)?

如何在 jenkins 中部署,根据参数选择从特定的 git 分支获取源代码