使用 API 获取 Chocolatey 包列表

gur*_*000 4 chocolatey

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

我试过的:

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

https://chocolatey.org/api/v2/ $metadata

从这里我可以使用这样的东西来获取 XML 的第一个“页面”:

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

我认为该网站默认限制为 40 个“条目”,因此可以相应地更改 $skip。

(另一种方法是使用指向下一个“页面”的 $skipToken)。

所有版本似乎都在响应中返回。编写一个循环来有效下载数据库是不负责任的。我不认为网站所有者会欣赏这一点。我不打算定期这样做。

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

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

Scr*_*ded 6

您可以使用类似Fiddler 的工具来检查来自 Chocolatey CLI 的流量。发布choco search git显示以下请求:

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

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