问题描述
我正在使用 SwaggerResponse 属性来装饰我的 api 控制器操作,这一切正常,但是当我查看生成的文档时,参数的描述字段为空.
是否有基于属性的方法来描述动作参数(而不是 XML 注释)?
用最新的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:
这篇关于Swashbuckle 参数说明的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!