有没有办法使用 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 现在至少只返回最新版本。
您可以使用类似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 没有公开文档,因此应将其视为内部资源。
| 归档时间: |
|
| 查看次数: |
2587 次 |
| 最近记录: |