ASP.NET Core Swagger(Swashbuckle.AspNetCore)でコントローラーの説明を定義するにはどうすればよいですか?

マリオブ

ASP.NET Core WebApiプロジェクトでSwaggerを試していますが、コントローラーの説明を除いて、すべて正常に動作します。

たとえば、UredskoPoslovanjeControllerがあり、Swagger UIの説明はUredskoPoslovanjeであり、それを変更する方法が見つかりません。

私が見つけた解決策だけがここにリストさていますが、バージョン管理はまったく同じ属性を使用しているため、これはAPIバージョンと競合していると思います[ApiExplorerSettings(GroupName="v2")]

この部分のswagger.jsonは次のとおりです。swagger.jsonのUredskoPoslovanje部分

そして、私のコントロールは次のように定義されています。

   /// <summary>
    /// Uredsko poslovanje API
    /// </summary>
    [Authorize]
    [Route("api/[controller]")]
    public class UredskoPoslovanjeController : Controller
    {
        private LinkDbContext ctx;

        public UredskoPoslovanjeController(LinkDbContext ctx)
        {
            this.ctx = ctx;
        }

        /// <summary>
        /// Vraća broj pismena za zadani OIB
        /// </summary>
        /// <param name="OIB">OIB korisnika za koji se traži broj pismena</param>
        /// <returns>Vraća broj pronađenih pismena</returns>
        /// <response code="200">Vraća broj pismena za traženi OIB</response>
        /// <response code="400">OIB ne postoji</response>        
        /// <response code="401">Nemate pristup metodi (neispravna autorizacija)</response>        
        [HttpGet("BrojPismena/{oib}")]
        public ActionResult<BrojPismenaModel> DajBrojPismena(string OIB)
        {
            if (string.IsNullOrWhiteSpace(OIB)) return BadRequest("OIB ne smije biti prazan");
            else
            {
                var osoba = ctx.Osoba.FirstOrDefault(x => x.Oib == OIB);
                if (osoba == null) return BadRequest($"Osoba s OIB-om '{OIB}' ne postoji!");
                else
                {
                    return Ok(new BrojPismenaModel() { OIB = OIB, BrojPismena = ctx.UpPismeno.Count() });
                }
            }            
        }
    }

コントローラの説明として「UredskoposlovanjeAPI」を期待しますが、それは起こりません-swaggeruiスクリーンショット

コントローラの説明を適切に設定する方法はありますか?

ありがとう、マリオ

ブラッドブルース

デフォルトでは、コントローラーのコメントは含まれていません。IncludeXmlCommentsメソッドには、コントローラーのXMLコメントを使用する必要があるかどうかを示すブール値をとるバージョンがあります。以下のコードは、私のスタートアップ:ConfigureServicesメソッドからのものです。

元の:

var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
c.IncludeXmlComments(xmlPath);

新着:

var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
c.IncludeXmlComments(xmlPath, true);  // <== Added the true here, to show the controller description

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ