我使用SwaggerResponse属性来装饰我的api控制器动作,这一切都很好,但是当我查看生成的文档时,参数的描述字段是空的。
是否存在基于属性的方法来描述操作参数(而不是XML注释)?
答案 0 :(得分:27)
使用最新的Swashbuckle,或者更好地说至少我正在使用的Swashbuckle.AspNetCore variant,参数的描述字段现在可以正确显示为输出。
确实需要满足以下条件:
[Http...]
<param ...>
xml评论完整示例如下所示:
/// <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);
}
产生以下输出:
答案 1 :(得分:5)
您应该确认您允许Swagger使用XML注释
httpConfig.EnableSwagger(c => {
if (GetXmlCommentsPath() != null) {
c.IncludeXmlComments(GetXmlCommentsPath());
}
...
...
);
protected static string GetXmlCommentsPath() {
var path = HostingEnvironment.MapPath("path to your xml doc file");
return path;
}
您还应该检查是否正在为所需项目生成XML文档。在您想要的项目属性下(Alt + Enter在项目顶部或右键单击 - &gt;属性) - &gt; 构建 - &gt;检查 XML文档文件
答案 2 :(得分:0)
为了完整起见,在使用最新版本的psql -v ON_ERROR_STOP=1
和Swashbuckle.AspNetCore (2.1.0)
时,在项目的构建中启用Xml文档文件生成
然后对您的Swashbuckle.SwaggerGen/Ui (6.0.0)
方法进行以下操作:
ConfigureServices()