Swashbuckle 参数说明参数、Swashbuckle

2023-09-09 21:08:39 作者:深情迎风散

我正在使用 SwaggerResponse 属性来装饰我的 api 控制器操作,这一切正常,但是当我查看生成的文档时,参数的描述字段为空.

是否有基于属性的方法来描述动作参数(而不是 XML 注释)?

解决方案Swashbuckler iphone 攻略 评测 图片下载 iTools

用最新的Swashbuckle,或者说至少是

I'm using SwaggerResponse attributes to decorate my api controller actions, this all works fine, however when I look at the generated documentation the description field for parameters is empty.

Is a there an attribute based approach to describe action parameters (rather than XML comments)?

解决方案

With the latest Swashbuckle, or better said at least the Swashbuckle.AspNetCore variant which I'm using, the Description field for parameters can now be displayed correctly as output.

It does require the following conditions to be met:

XML comments must be enabled and configured with Swagger Parameters should be explicitly decorated with either [FromRoute], [FromQuery], [FromBody] or [FromUri] The same for the method type (get/post/put etc.), which should be decorated with [Http...] Describe the parameter as usual with a <param ...> xml comment

A full sample looks like this:

/// <summary>
/// Short, descriptive title of the operation
/// </summary>
/// <remarks>
/// More elaborate description
/// </remarks>
/// <param name="id">Here is the description for ID.</param>
[ProducesResponseType(typeof(Bar), (int)HttpStatusCode.OK)]
[HttpGet, Route("{id}", Name = "GetFoo")]
public async Task<IActionResult> Foo([FromRoute] long id)
{
    var response = new Bar();
    return Ok(response);
}

Which produces the following output: