-
Notifications
You must be signed in to change notification settings - Fork 206
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ライブラリ管理未対応だったらAPIが実装されないように変更 #886
The head ref may contain hidden characters: "\u30E9\u30A4\u30D6\u30E9\u30EA\u7BA1\u7406\u5468\u308A\u306EAPI\u3092\u3001\u672A\u5BFE\u5FDC\u3060\u3063\u305F\u3089\u5B9F\u88C5\u3055\u308C\u306A\u3044\u3088\u3046\u306B\u5909\u66F4"
ライブラリ管理未対応だったらAPIが実装されないように変更 #886
Conversation
if engine_manifest_data.supported_features.manage_library: | ||
|
||
@app.post( | ||
"/install_library/{library_uuid}", | ||
status_code=204, | ||
tags=["音声ライブラリ管理"], | ||
) | ||
async def install_library( | ||
library_uuid: str, | ||
request: Request, | ||
) -> Response: | ||
""" | ||
音声ライブラリをインストールします。 | ||
音声ライブラリのZIPファイルをリクエストボディとして送信してください。 | ||
|
||
Parameters | ||
---------- | ||
library_uuid: str | ||
音声ライブラリのID | ||
""" | ||
if not engine_manifest_data.supported_features.manage_library: | ||
raise HTTPException(status_code=404, detail="この機能は実装されていません") | ||
archive = BytesIO(await request.body()) | ||
loop = asyncio.get_event_loop() | ||
await loop.run_in_executor( | ||
None, library_manager.install_library, library_uuid, archive | ||
@app.get( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ちなみにここの空行はフォーマッターが入れてきました。
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTMです!
内容
エンジン0.15にアップデートする予定です。
製品版にはまだライブラリ管理機能がないので、APIが実装されていると、叩けるのかと勘違いして色々試される方が出てきそうに思いました。
であればいっそう未実装な方が良いので、マニフェストの値を見てAPI自体をなくすようにしてみました。
関連 Issue
その他
他のアイデアとして、マニフェスト的に対応していなかった場合に、APIは叩けるけれどもエラーが返る実装も考えました。
でもまあその場合はドキュメントでも未実装であることが案内できると良さそうで、なんかややこしそうだったので一旦簡単な方で実装してみました。