通过 http 请求(或类似请求)获取 dart 版本列表
obtain List of dart versions via http request (or similar)
我正在尝试构建一个 cli 应用程序来显示 dart 版本列表并允许用户select 安装一个然后在它们之间切换。
注意:有一个 flutter 工具(fvm)可以在 flutter 版本(和嵌入式 dart 工具)之间切换,但这个工具是专门针对 dart 的,需要版本和渠道。
fvm 工具使用以下端点:
https://storage.googleapis.com/flutter_infra/releases/releases_linux.json
但我找不到等效项。
是否有任何方法可以获取每个 dart 频道的版本列表。
我发现:
https://storage.googleapis.com/dart-archive/channels
但您需要了解完整的 url,因为我找不到任何提供列表的端点。
我希望避免屏幕抓取。
SDK (https://github.com/dart-lang/sdk/tags) github 存档的标签似乎对版本进行了合理有用的标记。缺点是它有 1.3GB 的重量,并且没有简单的方法来获得它的可行的浅层克隆。
您可以看到 Dart Archive Page 如何检索所有信息并使用它们的端点:
端点 return 格式如下:
{
"kind": "storage#objects",
"prefixes": [
"channels/<stable|beta|dev>/release/1.11.0/",
...,
"channels/<stable|beta|dev>/release/2.9.3/",
"channels/<stable|beta|dev>/release/29803/", // You might need to filter out results such as this
...,
"channels/<stable|beta|dev>/release/latest/"
]
}
注意:结果不以任何方式排序
Url:
https://www.googleapis.com/storage/v1/b/dart-archive/o?delimiter=%2F&prefix=channels%2F<stable|beta|dev>%2Frelease%2F&alt=json
将 <stable|beta|dev>
替换为您要哪个版本的信息。
如果您需要收集有关版本的信息,您可以使用:
https://storage.googleapis.com/dart-archive/channels/<stable|beta|dev>/release/< VERSION NUMBER | latest>/VERSION
这将 return 一个 json 对象,例如:
{
"date": "2020-11-11",
"version": "2.10.4",
"revision": "7c148d029de32590a8d0d332bf807d25929f080e"
}
我正在尝试构建一个 cli 应用程序来显示 dart 版本列表并允许用户select 安装一个然后在它们之间切换。
注意:有一个 flutter 工具(fvm)可以在 flutter 版本(和嵌入式 dart 工具)之间切换,但这个工具是专门针对 dart 的,需要版本和渠道。
fvm 工具使用以下端点: https://storage.googleapis.com/flutter_infra/releases/releases_linux.json
但我找不到等效项。
是否有任何方法可以获取每个 dart 频道的版本列表。
我发现:
https://storage.googleapis.com/dart-archive/channels
但您需要了解完整的 url,因为我找不到任何提供列表的端点。
我希望避免屏幕抓取。
SDK (https://github.com/dart-lang/sdk/tags) github 存档的标签似乎对版本进行了合理有用的标记。缺点是它有 1.3GB 的重量,并且没有简单的方法来获得它的可行的浅层克隆。
您可以看到 Dart Archive Page 如何检索所有信息并使用它们的端点:
端点 return 格式如下:
{
"kind": "storage#objects",
"prefixes": [
"channels/<stable|beta|dev>/release/1.11.0/",
...,
"channels/<stable|beta|dev>/release/2.9.3/",
"channels/<stable|beta|dev>/release/29803/", // You might need to filter out results such as this
...,
"channels/<stable|beta|dev>/release/latest/"
]
}
注意:结果不以任何方式排序
Url:
https://www.googleapis.com/storage/v1/b/dart-archive/o?delimiter=%2F&prefix=channels%2F<stable|beta|dev>%2Frelease%2F&alt=json
将 <stable|beta|dev>
替换为您要哪个版本的信息。
如果您需要收集有关版本的信息,您可以使用:
https://storage.googleapis.com/dart-archive/channels/<stable|beta|dev>/release/< VERSION NUMBER | latest>/VERSION
这将 return 一个 json 对象,例如:
{
"date": "2020-11-11",
"version": "2.10.4",
"revision": "7c148d029de32590a8d0d332bf807d25929f080e"
}