OpenAPI generatorのバージョンを切り替えて使う
TL;DR
- 元々openapi-generator-cliを使ってる場合は特に不要と思われる記事。
- brewのswitchでも問題なくやれてるよって人はほぼ不要だと思われる記事。
- openapi-generator-cliを使ってバージョンが切り替えられる。 https://www.npmjs.com/package/@openapitools/openapi-generator-cli
経緯
現行(2022/10/28)の6.2.0で、Generatorが出力するPython-flaskのスタブサーバーのModelの内容が変わっているため、Validationがうまく動かずテストコードがエラーになってしまうことが多発した。
こちらに書いたIssueがその内容です。
バージョンを戻そうにも、brewでopenapi-generatorをinstallして使っていたがバージョンが切り替えられなかった。
brew switchで切り替える方法もある。
(記事でもopenapi-generatorのバージョンを変えているので、そういう需要は多そう)brew switchで変える時は、gitでcommitを参照したりとちょっと煩わしさを感じる。
brew install openapi-generator@5.3.1
みたいにインストールできればいいのに。
解決方法
openapi-generator-cliを使う。恥ずかしながら、JS系のソフトウェアではないから、入れる意味がないと思っていました。。。
インストールから使用開始まではこの記事に書いてある通りなので、詳しい内容はこちらを参照。
以降、使用感などを書いていきます。
Install
Globalではなく、Localにinstallするのがおすすめだと言われる。確かにLocalのnpmで管理できるのであれば、他のプロジェクトとは違ったものを使えたりとか、Prosは多そう。
npm install @openapitools/openapi-generator-cli
Generate
サンプルでは
openapi-generator-cli generate ...
となっているんだけど、頭にnpxがないと動かないと思うんだけど、どうなんだろう。
実際自分の環境ではnpxをつけないと動かなかった。yarnやってる人もいるから?
npx openapi-generator-cli generate ...
Version Manager
粋で鯔背なバージョン管理機能がある。
npx openapi-generator-cli version-manager list
カーソルで好きなバージョンを選択してEnterを押すと、そのバージョンが使えるようになる。
鯔背。
その他
npm(yarnでももちろん良いが)を使っておく利点としては、いちいちShell fileを作らなくても、npmのscriptsに書いておけば、npm runで実行できるので、楽。
{
"name": "inasedane-cli",
"version": "0.0.0",
"scripts": {
"generate-openapi": "openapi-generator-cli generate -i swagger-build.yaml -g python-flask",
}
}
※この文章の20%くらいは、Copilotによる自動生成です。
Discussion