背景

openapi v3で書かれたyamlファイルから、Python3(3.6以上)のClient Libraryを作りたいです。
https://github.com/OpenAPITools/openapi-generator

以下のサイトを参考にして、Client Libraryを作成しようとしています。
https://qiita.com/watiko/items/0961287c02eac9211572

java -jar openapi-generator-cli-3.3.4.jar generate --input-spec petstore.yaml --generator-name python --template-dir template/

環境

  • Xubuntu 18.04
  • openapi-generator-cli-3.3.4.jar
  • openjdk 10.0.2

現状の動き

petstore.yamlに記載されたtagsごとに、pyファイルがapiディレクトリに出力されます。

petstore.yaml

  /pets/{petId}:
    get:
      summary: Info for a specific pet
      operationId: showPetById
      tags:
        - pet

  /animals/{animalId}:
    get:
      summary: Info for a specific Animal
      operationId: showAnimalById
      tags:
        - animals

出力先のapiディレクトリの中身

animals_api.py
pet_api.py

やりたいこと

api.pyというファイルに、tags関係なく、すべてのapi情報を出力したいです。
以下のように、すべてのAPIに対応したメソッドを、一つのクラスにまとめたいです。

class Api:
    def show_pet_by_id:
        pass

    def show_animal_by_id:
        pass

質問

「やりたいこと」を実現するには、どうすればよいでしょうか?
apiのテンプレートファイルapi.mustacheには、tagsごとの情報が記載されているので、mustacheファイルだけの修正では難しいように思いました。

https://github.com/OpenAPITools/openapi-generator/blob/master/modules/openapi-generator/src/main/resources/python/api.mustache

ジェネレータも作成する必要がありますか?

openapi-generatorでの実現が難しい場合は、以下のようなコマンドを実行して、各*_api.pyを連結します。

cat api/*_api.py > api.py && rm *_api.py