2024.11.14
いまさらNode.jsを知ろう~環境構築も~
2020.03.31
未分類SpringFoxでのSwaggerのリクエスト・レスポンス説明の共通化
この記事では、SpringFoxにおけるリクエスト・レスポンス説明の共通化をいくつか紹介します。
springfoxはURLPathで区切られたgroupという単位に分けることができます。
このgroup単位で共通のリクエスト・レスポンスパラメータを設定することができます。
@Bean public Docket petApi() { return new Docket(DocumentationType.SWAGGER_2) .groupName("sample-api") .select() .pathMapping("/api/*") .build() .apiInfo(apiInfo()) .globalResponseMessage(RequestMethod.GET, newArrayList(new ResponseMessageBuilder() .code(500) .message("500 message") .responseModel(new ModelRef("Error")) .build())) .globalOperationParameters( newArrayList(new ParameterBuilder() .name("someGlobalParameter") .description("Description of someGlobalParameter") .modelRef(new ModelRef("string")) .parameterType("query") .required(true) .build()));
globalResponseMessageが共通のレスポンスパラメータ説明の付与、
globalOperationParametersが、共通のリクエストパラメータ説明の付与です。
URLPathで区切るので、例えば「https://hoge.jp/api/~以下は、すべて共通のパラメータを持ちたい」といった時に使います。
参考:公式ドキュメント
@ApiResponses(value = { @ApiResponse(code = 400, message = "ValidationError", response = ErrorResponse.class), @ApiResponse(code = 403, message = "Forbidden", response = ErrorResponse.class) }) public class BaseController { ~ } public class ApiController extends BaseController { ~ }
この例のように書くと継承先のClassのAPI全てに@ApiResponsesが適応されます。Class単位で共通のレスポンスを設定したい場合に使えます。
SpringFoxはいろいろな書き方のできるライブラリなので、「こんなことできないかな?」と思ったら、一度公式ドキュメントを探ってみるといいかもしれません。
【記事への感想募集中!】
記事への感想・ご意見がありましたら、ぜひフォームからご投稿ください!【テクノデジタルではエンジニア/デザイナーを積極採用中です!】
下記項目に1つでも当てはまる方は是非、詳細ページへ!Qangaroo(カンガルー)
【テクノデジタルのインフラサービス】
当社では、多数のサービスの開発実績を活かし、
アプリケーションのパフォーマンスを最大限に引き出すインフラ設計・構築を行います。
AWSなどへのクラウド移行、既存インフラの監視・運用保守も承りますので、ぜひご相談ください。
詳細は下記ページをご覧ください。
最近の記事
タグ検索