アップデート確認APIの設計案
最新版の取得
パッケージとバージョンを渡す。
GET /packages/{package:name}/releases/latest?version={version}
- 渡されたバージョンよりも新しい有効なリリースがあったら、最新のものを返す。
- 渡されたバージョンよりも新しい有効なリリースがなかったら、何も返さない。
現行版の確認
パッケージとリリースの識別子を渡す。
GET /packages/{package:name}/releases/{release:name}
- 指定されたリリースが登録されていて、有効になっていたら、それを返す。
- 指定されたリリースが登録されていなかったり無効になっていたりしたら、何も返さない。
DB
packages {
id: primary id
name: string (unique)
}
releases {
id: primary id
package_id: foreign id
name: string (unique)
url: string (nullable)
notes: text (nullable)
publish_date: DateTime (有効化される日時)
expire_date: DateTime (無効化される日時)
}
CLI
パッケージの作成
package:create {package:name}
パッケージの削除
package:remove {package:name}
リリースの公開
package:release:publish {package:name} {release:name}
リリースの廃止
package:release:expire {package:name} {release:name}
オプションで指定したバージョン以下をまとめて廃止できてもいいかも。