Swagger-core: 同じHTTPコードでの複数の@ApiResponseのサポート

作成日 2019年12月09日  ·  4コメント  ·  ソース: swagger-api/swagger-core

以下のように、同じHTTPコードで複数の@ApiResponseを持つことができるAPI仕様のドキュメントを作成したいと思います。

    @ApiOperation(value = "Process request for login by user", response = Iterable.class)
    @ApiResponses(value = {
            @ApiResponse(code = 200, message = "Login success"),
            @ApiResponse(code = 400, message = "Login fail by wrong ID"),
            @ApiResponse(code = 400, message = "Login fail by wrong password"),
            @ApiResponse(code = 400, message = "Login fail by withdrawn ID")
    })

これは、多くのユーザーが望むように役立ちます(https://github.com/kongchen/swagger-maven-plugin/issues/199で確認できます)

この機能がswagger-coreで利用可能になると、すべてのプラグインに適用されます。

あまり意味がないと思われる場合はコメントをお願いします。
よろしくお願いします。

最も参考になるコメント

あなたの場合、@ ApiResponse(code = 400、message = "ログインは間違ったIDで失敗します")、
@ApiResponse(code = 400、message = "ログインが間違ったパスワードで失敗しました")、
@ApiResponse(code = 400、message = "ログインが取り消されたIDで失敗しました")
このメッセージは上書きされ、応答コード400のメッセージは1つしか表示されません。
あなたは次のように変更することができます

@ApiOperation(value = "ユーザーによるログイン要求の処理"、response = Iterable.class)
@ApiResponses(value = {
@ApiResponse(コード= 200、メッセージ= "ログイン成功")、
@ApiResponse(code = 400、message="ログインが間違ったIDで失敗しました\t\nログインが間違ったパスワードで失敗しました\t\ nログインが取り消されたIDで失敗しました")、
})

これにより、400未満の3つのメッセージすべてが表示されます

全てのコメント4件

あなたの場合、@ ApiResponse(code = 400、message = "ログインは間違ったIDで失敗します")、
@ApiResponse(code = 400、message = "ログインが間違ったパスワードで失敗しました")、
@ApiResponse(code = 400、message = "ログインが取り消されたIDで失敗しました")
このメッセージは上書きされ、応答コード400のメッセージは1つしか表示されません。
あなたは次のように変更することができます

@ApiOperation(value = "ユーザーによるログイン要求の処理"、response = Iterable.class)
@ApiResponses(value = {
@ApiResponse(コード= 200、メッセージ= "ログイン成功")、
@ApiResponse(code = 400、message="ログインが間違ったIDで失敗しました\t\nログインが間違ったパスワードで失敗しました\t\ nログインが取り消されたIDで失敗しました")、
})

これにより、400未満の3つのメッセージすべてが表示されます

@ pavan-eidiko私が提案する@ApiResponseの重複した使用法である変更を適応させることが不可能な場合は、あなたの推奨が最善でしょう。 それは有り難いです! 私はすぐにあなたの提案に従います。

ただし、この問題を自分で解決することはしません。 私はまだ、変更が寄稿者にとって意味があることを確認したいと思います。 将来のニュースを聞くことができるように、私はまだそれを開いています。

@Garamda OpenAPI仕様では、異なるメッセージで同じHTTPコードを複数回指定することはできません。 技術的には、単一のコードに対してさまざまな応答タイプをサポートできますが、複数の説明をサポートすることはできません。 これは仕様の制限であり、これを克服する実際の方法はありません。 自分で文字列を追加すると、ユーザーに意外な結果をもたらし、ここにバグがあると思わせることになると思います。

@webron今私は完全に理解しています。 SwaggerがOpenAPI仕様に基づいていることを知りませんでした。 何卒よろしくお願い申し上げます。

Swaggerプロジェクトのメンバーが、提案が受け入れられない理由を十分に説明したので、この問題を閉じます。 改めて感謝します。

このページは役に立ちましたか?
0 / 5 - 0 評価