我目前正试图在Swagger UI中显示一个特定响应的描述,但似乎没有一个文档真正涵盖了这方面的所有方面,而且我从Get started with Swashbuckle and ASP.NET Core中尝试的所有示例在.NET Core 3.1中都不起作用...
/// <summary>
/// Test route...
/// </summary>
/// <returns></returns>
/// <response code="200">This is a test</response>
[HttpGet]
[ProducesResponseType(typeof(string), StatusCodes.Status200OK)]
public IActionResult Get()
{
return Ok("Hello World");
}
My .csproj还包含以下内容:
<PropertyGroup>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<NoWarn>$(NoWarn);1591</NoWarn>
</PropertyGroup>
Swagger UI最终看起来是这样的(正如您所看到的,“Descriptipn”列不包含“This is a test”文本,而它可能应该包含)。
我还添加了[SwaggerResponse(StatusCodes.Status200OK, ...)]
,但没有任何变化。
3条答案
按热度按时间jchrr9hc1#
事实证明,
[SwaggerResponse]
工作正常,但在此之前,我需要在我的启动中“启用注解”...41ik7eoe2#
自.NET v6以来,有两种管理API的方法:经典的API控制器和minimal API。它们是非常不同的,所以我在下面提供两个答案。
适用于经典/传统API控制器
根据官方文档,这是通过XML注解与
ProducesResponseType
属性的组合完成的:评论需要链接到Swagger
对于最小API
今天,最小的API仍然是相当原始的与补丁支持都NSwag和Swashbuckle。
在this post on SO中,建议使用传统的属性:
7rtdyuoh3#
在您的项目属性中,您应该检查刀片
Build
下找到的Output XML documentation file
。然后在您的startup
文件中:如果仍然不起作用,请检查xml文件是否出现在
bin
文件夹中。如果没有,请检查Visual Studio中的属性,并将Copy to output directory
调整为Copy
或Copy if newer
。