You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
defuse_route_names_as_operation_ids(app: FastAPI) ->None:
""" Simplify operation IDs so that generated API clients have simpler function names. Should be called only after all routes have been added. """forrouteinapp.routes:
ifisinstance(route, APIRoute):
route.operation_id=route.name# in this case, 'read_items'
内容
VOICEVOX EngineのOpenAPIをエディタ側からgeneratorを使ってラッパーを生成していますが、関数名が2回繰り返されるようになってしまっています。
https://github.com/VOICEVOX/voicevox/blob/af114ee04d66b9b9e037869c74b0872abec48f11/src/openapi/apis/DefaultApi.ts#L344
これはエンジン側をいい感じに変更することで、関数名の繰り返しをなくすことができます。
このissueはこの方法適用してよいか・適用すべきかを議論して、適用するなら適用すれば完了だと思います。
Pros 良くなる点
エディターのコードが見やすくなる。
OpenAPIを使っている人にも得があるかも?
Cons 悪くなる点
OpenAPIを使っている場合に破壊的変更になる。(バージョンアップ時の扱いは破壊的変更としては使わない予定)
エディタの方も変更が必要。
実現方法
ここから転載
operationId というのを指定すると、生成される関数名を指定できます。
一括で、アノテーションされてる関数名にするための関数が公式で案内されてました。
https://fastapi.tiangolo.com/ja/advanced/path-operation-advanced-configuration/#path-operation-operationid
を
voicevox_engine/application.py
定義して、genarate_app の最後に呼び出した状態で生成されたopenapi.json
を用いて、typescript-fetch のライブラリを生成すると、以下のような関数ができました。https://github.com/VOICEVOX/voicevox/blob/main/src/openapi/apis/DefaultApi.ts#L1200-L1203 に相当するものです。
VOICEVOXのバージョン
0.22
その他
@raa0121 さんに教えていただきました、ありがとうございます!!
The text was updated successfully, but these errors were encountered: