使用 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 文档,因此应将其视为内部资源。
有没有办法使用 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 文档,因此应将其视为内部资源。