Skip to content
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にHTTP 422のAPIドキュメントを追加したい #760

Open
aoirint opened this issue Oct 8, 2023 · 8 comments
Open
Labels
初心者歓迎タスク 初心者にも優しい簡単めなタスク 機能向上 状態:実装者募集 実装者を募集している状態 非アクティブ

Comments

@aoirint
Copy link
Member

aoirint commented Oct 8, 2023

内容

#711 (comment) で挙がった内容をふまえて、Issue化します。

プリセットAPIは、さまざまな要因で実行に失敗した場合に、HTTP 422を返します。
APIを実行すると原因が返るようになっていますが、APIドキュメントには含まれていません。

プリセット関連のAPIエンドポイントで、HTTP 422が返る状況について、APIドキュメントを追加したいです。

Pros 良くなる点

  • APIを実行せずに挙動がわかるようになる

Cons 悪くなる点

実現方法

こんな感じでdescriptionを追加できるはずです("model"はレスポンスをカスタムしない場合は不要)。

voicevox_engine/run.py

Lines 1077 to 1082 in b64db22

responses={
400: {
"description": "テキストが不正です",
"model": ParseKanaBadRequest,
}
},

VOICEVOXのバージョン

0.15 開発版

その他

@Hiroshiba
Copy link
Member

Hiroshiba commented Oct 9, 2023

良いと思います!!ぜひ・・・!

@tarepan tarepan added 状態:実装者募集 実装者を募集している状態 初心者歓迎タスク 初心者にも優しい簡単めなタスク labels Mar 5, 2024
@tarepan tarepan removed the 優先度:低 (運用中止) label Mar 10, 2024
@tarepan
Copy link
Contributor

tarepan commented Apr 1, 2024

#1162 にて 422 / 500 の整理をおこないました。
その結果、10パターン近い異常系があることが明確化されました。
この全てを FastAPI path operation に記述することは一応可能です。
ただ全エラー挙動を docs で知りたいという需要はかなり薄そうに感じます。
一方で、注釈が必要な特定エラーに関しては妥当かと思います。

@Hiroshiba
本 issue の必要性は現在でも変わっていない感じでしょうか?

@tarepan tarepan added 要議論 実行する前に議論が必要そうなもの 状態:必要性議論 必要性を議論している状態 and removed 状態:実装者募集 実装者を募集している状態 labels Apr 1, 2024
@Hiroshiba
Copy link
Member

Hiroshiba commented Apr 15, 2024

少なくともプリセットAPIだけではなく、全APIに対して言えそうだなと思いました。

一般論として、エラーがどういうときに起こるのかとか、直感に反するエラー挙動をしたりする場合のドキュメントはあったほうが有用だとは思います。

うーん、ネガティブケースのドキュメントの優先度をどうするかの哲学を持っておらず、判断を悩んでいます。
これが割としっかりしないといけないマイクロサービスの納品とかであれば絶対書くべきなのですが・・・。

少なくとも致命性が高いものや、よく起こるけど原因がわかりづらいエラーは案内してあげても良いかもと思いました。
そういう意味では少なくともプリセットAPIのエラードキュメントはそこまで優先度を上げなくても良いかもです。

@tarepan tarepan added 状態:実装者募集 実装者を募集している状態 and removed 要議論 実行する前に議論が必要そうなもの 状態:必要性議論 必要性を議論している状態 labels Apr 15, 2024
@sabonerune
Copy link
Contributor

あとはエラーが起きた時それに対処可能である場合とかでしょうか?

@Hiroshiba
Copy link
Member

Hiroshiba commented May 1, 2024

あとはエラーが起きた時それに対処可能である場合とかでしょうか?

有用ですが、書くならドキュメントじゃなくエラーメッセージ側でも良いかもと思いました!
といってもエラーから離れすぎると違う案内をしてしまうかもなので、例えばファイルがなかった場合にファイルが見つかりませんでした。{path}にファイルがあるか確認してください。みたいな感じかもですが。

うーん! あっても良いし、どちらかというとあったほうが良いけど、まあ最悪なくても良いかな!!
より優先度の高い項目がありそう!! v2 APIの設計とか!!

@sabonerune
Copy link
Contributor

あ、対処可能であるというのはプログラムがAPIを叩いてエンジンがエラーを返したときにプログラム側でエラー内容を読み取って処理が変更可能かどうかということですね。

ただよく考えるとVOICEVOXにそのようなタイプのAPIはない?

@Hiroshiba
Copy link
Member

Hiroshiba commented May 2, 2024

なるほどです!!エラーコードを返す的な感じかな。

対処を変えないといけないレベルのは、大体はステータスコードレベルから変わってそうな気がしました!
入力がおかしいかサーバー側がおかしいかとか、corsとか、get/post違いとか。

あ、sing系APiはもう少しエラー細分化してあげても良いかも。

あとは「どのパラメーターがおかしい」とかはエラーコード分けて返してあげるとしっかりしてるエディタはしっかり活用してくれるかもですね。

まあでも…なんかこう、別に良いかなみたいな気持ちになっちゃいますね…なんでだろう…

Copy link

本 Issue は直近 180 日間で活動がありません。今後の方針について VOICEVOX チームによる再検討がおこなわれる予定です。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
初心者歓迎タスク 初心者にも優しい簡単めなタスク 機能向上 状態:実装者募集 実装者を募集している状態 非アクティブ
Projects
None yet
Development

No branches or pull requests

4 participants