LoginSignup
6
0

More than 3 years have passed since last update.

openapi-generatorのadditional-propertiesを指定して生成されるコードをカスタマイズしよう

Posted at

openapi-generatorはOpenAPIの定義ファイルから、API ClientやServer stubsなどを自動生成してくれる便利なものです。対応言語も豊富なので、これからAPI Clientを作ろうと考えている方は、これを用いて自動生成することをおすすめします。

$ openapi-generator generate -i ./openapi.yml -o ./openapi_client -g ruby

上記のコマンドを実行すると、openapi.ymlをもとに、openapi_clientというディレクトリ配下にrubyのコード(実態はgem)が生成されます。

openapi-generatorコマンドには多彩なオプションがあり、以下のコマンドで確認ができます。

$ openapi-generator help generate

本記事ではこの中にある additonal-properties というオプションについて説明します。

additonal-propertiesについて

このオプションは、生成される各言語ごとのオプションを設定できるものです。

例えばRubyのAPI Clientであれば上記のドキュメントにあるものがすべてadditional-propertiesで指定できます。
RubyのAPI Clientはデフォルトでは openapi_client というgem名で生成されますが、このgemの名前を変えたい場合は下記のようにオプションを指定することで変更ができます。

$ openapi-generator generate -i ./openapi.yml -o ./openapi_client -g ruby --additional-properties=gemName=qiita_client

最近だと1つのリポジトリから複数のサービスのAPIを呼び出すことも多々あるでしょう。その場合はopenapiの定義ファイルが複数あることになると思いますが、すべて同じopenapi_clientというgemで生成されてしまうとどれか一つのサービスのAPIしか呼び出せなくて困ってしまいます。
そこで上記のオプションを使って別のgemとして生成することで、複数のサービスのAPIを呼び出すことが可能になります。
他にも便利そうなオプションがいくつかありますが、additional-propertisに複数指定したい場合はカンマ区切りでkeyとvalueをつなげると良いようです。詳しくはドキュメントを見てください。

言語ごとにオプションがいろいろあるので、すでに自動生成している方も一度ドキュメントを確認してみると良いのではないでしょうか?
それでは良い自動生成生活を!

6
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
0