【OpenAPI Generator】GitHubからファイルをダウンロードせずにAPIクライアントを生成する方法
今月頭にGitHub からファイルをダウンロードする方法という記事を書いたのですが、そもそもダウンロードすら不要だったので改めて書いていこうと思います。
事前準備
- @openapitools/openapi-generator-cli
- GitHub の Personal access tokens(プライベートリポジトリの場合)
手順
スキーマを準備する
GitHub のてきとうなリポジトリにスキーマファイルを配置します。(スキーマのサンプル)
で、そのファイルの Raw を開き、url をコピーします。(スキーマの Raw のサンプル)
上記のサンプルはパブリックリポジトリなので url にトークンが付与されていないですが、プライベートリポジトリの場合 url の末尾に ?token=piyomoge
みたいな値がついているはずです。
クライアントを生成する
ローカルのてきとうな場所に package.json
を配置し、@openapitools/openapi-generator-cli
をインストールします。
スクリプトを適宜追加します。
{
...,
"scripts": {
"generate": "openapi-generator-cli generate -g typescript-axios -i https://raw.githubusercontent.com/hoge/fuga/schema.yml?token=piyomoge -o src"
},
...
}
あとは npm run generate
を実行すれば生成されます。
めっちゃ簡単ですね。
token を外出しにする
とはいえ、普通に考えて token
を直書きは気持ち悪いので外出しにすると思います。
その場合、package.json
と同じフォルダー内に token
とかてきとうな名前のファイルを作り、token
の値をそのまま貼り付けます。
あとはスクリプトを以下のように書き換えたら OK です。
{
...,
"scripts": {
"generate": "openapi-generator-cli generate -g typescript-axios -i https://raw.githubusercontent.com/hoge/fuga/schema.yml?token=$(cat token) -o src"
},
...
}
これで業務レベルでも問題なくいけます。
数年前にこのやり方で生成していたはずなんですが、現場から離れてからやり方を忘れてしまいずーっともやもやしていました。
が、@openapitools/openapi-generator-cli の Usage に普通に githubusercontent
を使うやり方が書いてありますね…今までなんで気づけなかったんだ…。
token
の差し替えのやり方がちょっとトリッキーですが、スクリプトファイルを作ってしまえば普通に環境変数でもいけると思いますので、よしなにやってもらえれば良いと思います。