😀

openapi-generator-cliを使ってみた

2020/05/03に公開

はじめに

@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つのファイルをどっかのディレクトリに置いて、

  1. package.json
  2. petstore.openapi.yml

以下のスクリプトを実行すると、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一択かな。

Discussion