はじめに
@openapitools/openapi-generator-cli を試使用したメモ書き。
OpenAPI Specificationとは
Open API Specificationとは
What Is OpenAPI?
OpenAPIとは、RESTful APIを記述するためのフォーマットのこと。
Swagger 2.0を拡張して実装されている。
出典:https://qiita.com/teinen_qiita/items/e440ca7b1b52ec918f1b
Open API Generatorとは
Open API Generatorとは
OpenAPI generatorは(中略)、OpenAPI Specificationを元にクライアントやサーバのコードを生成するソフトウェアです。
出典:https://qiita.com/amuyikam/items/e8a45daae59c68be0fc8#openapi-generator
なお、このOpen API GeneratorはOpenAPI Specificationを発行している非営利団体Open API Initiativeとは無関係に、コミュニティが開発しているツールである。
openapi-generatorを実際にやってみた
generator はjar,npm,dockerなどの多様な形式で提供されている。
今回はnpm版を使う。
以下の2つのファイルをどっかのディレクトリに置いて、
以下のスクリプトを実行すると、python,java,javascriptのserver side とclient sideのコードが生成される。
yarn install
# generate server side code
mkdir server
yarn gen:python-flask
yarn gen:spring
yarn gen:nodejs-express-server
# generate client side code
mkdir client
yarn gen:python
yarn gen:java
yarn gen:javascript
ちなみに、このgeneratorの注意点は 60種類以上のgenerator が提供されているにもかかわらず、OpenAPI Specificationを完全にサポートした言語はないことだ。といっても、非対応なものは Custom DataType, MultiServerなど のレア?なものに限られるようだが。・・・多分、大丈夫。
swagger-codegenは
これとは別にSmartBear社が商用で開発しているswagger-codegenというツールもある。
これも使っては見たが…。正直不具合が多すぎてどうしようもない。まずpythonもjavaもそもそも実行すらできず。javaはpom.xml間違ってるし、Pythonはimport足りてないし。
swagger-codegenは、現時点(2020/5/2)でissueが2265件あって、直近1ヶ月間でcloseできたissue の件数は17件、新たに増えたissueが40件。もうダメやん。
つかうならopenapi-generator一択かな。