openapi-generator-cliで、すべてのAPIを一つのファイルに出力する方法
背景
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ファイルだけの修正では難しいように思いました。
ジェネレータも作成する必要がありますか?
openapi-generatorでの実現が難しい場合は、以下のようなコマンドを実行して、各*_api.py
を連結します。
cat api/*_api.py > api.py && rm *_api.py