SwaggerUIで特定のMediaTypeを選択できるようにする方法。
はじめに
ASP.NET Core + SwaggerUIの画面でMediaTypeを切り替える箇所がありますが、こちらの選択オプションを変更する方法を記載します。 デフォルトでは以下のように「text/plain」「application/json」「text/json」の3つが表示されます。
ProducesAttributeクラス
こちらを実現するためにProducesAttributeクラスを用います。
ProducesAttribute クラス (Microsoft.AspNetCore.Mvc) | Microsoft Docs
下記のリンクではProducesAttributeクラスをSwashbuckleで利用した例が記載されていますがNSwagでも同じ挙動になります。
Swashbuckle と ASP.NET Core の概要 | Microsoft Docs
サンプルコード
[Produces("application/json", "text/csv")] [HttpGet] public IActionResult Get() { //何かしらの処理 }
ビルド後にSwaggerUIを起動すると、以下のようにMediaTypeが「application/json」と「text/csv」の2つになっていることが分かります。
Swashbukleの場合
NSwagの場合
おわりに
SwaggerはWebAPIテンプレートを利用する際は自動で付いてくるので今まで何となく使っていたのですが、ちゃんと勉強しないとですね...(;´∀`) 細かなUIを作る方法も少しずつ学んでいきたいと思います。