Open2
aqua で任意の endpoint から version list を取得する
- バージョンリストを取得する
- endpoint によってはバージョンだけでなく release note なども取得できる
- HTTP
- Method: とりあえず GET のみ
- 認証が必要なエンドポイントはサポートしない
- query: 一旦サポートしない
- body: GET なので考えなくて良い
- header: 一旦サポートしない
- 最新バージョンを取得
- バージョンリストから最新バージョンを取得でも良いが、最新バージョンを取得する endpoint がある場合もある
- どうやって response body をパースするか
- 行指向: 行ごとにパースする (Go Module Proxy なんかはそう)
- version だけ返す場合と、 release note などのメタデータを含む object を返す場合がある
- JSON
- JSONPath
- シンプル
- release note なども返したい場合、複数の JSONPath を記述する感じ
- Expr
- 表現力が少々弱い(といっても JSONPath よりは上?)ので難しい場合もあるかも
- Jsonnet
- 自由度が高いが複雑
- JSONPath
結局この機能を必要とするツールが殆ど無い気がする
ないのに実装しても仕方がない。
一方で Go Module Proxy については数が少ないものの一応あるのでサポートしても良いかもしれない。
その場合、無理に汎用的な API にしなくても現状の go_version_path
みたいな悪く言えば場当たり的なもの(けどシンプルで良い気もする) で十分では。