使用 API 获取巧克力包列表

Get list of Chocolatey packages using API

有没有办法使用 chocolatey.org 站点上的 OData api 来获取社区存储库中所有可用包的列表?

我尝试过的:

我可以看到使用公开包的 $metadata 服务:

https://chocolatey.org/api/v2/$元数据

从这里我可以使用类似这样的东西来获得 XML 的第一个 "page":

http://chocolatey.org/api/v2/Packages()?$skip=0

我认为该网站默认限制为 40 "entries",因此可以相应地更改 $skip。

(另一种方法是使用指向下一个"page"的$skipToken)。

所有版本的回复似乎都return。写一个循环来有效下载数据库是不负责任的。我认为网站所有者不会对此表示赞赏。我不打算经常这样做。

抛开这样做的原因,是否有更好的方法来仅使用 API 而不是通过 choco CLI 获取包列表?

更新1 使用过滤器取暖 - 元数据中的线索 例如。 https://chocolatey.org/api/v2/Packages()?$filter=IsLatestVersion 这现在至少是 return 的最新版本。

您可以使用 Fiddler 之类的东西来检查来自 Chocolatey CLI 的流量。发出 choco search git 显示以下请求:

GET /api/v2/Search()?$filter=IsLatestVersion&$skip=0&$top=30&searchTerm='git'&targetFramework=''&includePrerelease=false HTTP/1.1

请注意,您不应该在未先与他们联系的情况下使用他们的 API。即使它只是供个人使用。他们的 API 没有 public 文档,因此应将其视为内部资源。