我正在使用Swagger进行Dotnet Core来记录我的Dotnet Core Web API。
我已经阅读了文档,告诉我我需要添加 控制器方法上方的[ProducesResponseType(typeof(XXXXX),200)]
帮助招摇确定方法的响应类型。
我有一种返回文件的控制器方法,我正在尝试弄清楚我能告诉Swagger我要返回文件。
public class DocumentController : Controller
{
private readonly IDocumentService _documentService;
public DocumentController(IDocumentService documentService)
{
_documentService = documentService;
}
[HttpGet("{documentId}", Name= DocumentRoutes.Document)]
[ProducesResponseType(typeof(XXXXX), 200)] // <== What goes here?
public async Task<IActionResult> GetDocument(Guid documentId)
{
DocumentAdto documentAdto = await _documentService.GetAsync(documentId);
return File(documentAdto.DocumentBytes, documentAdto.ContentType, documentAdto.Name);
}
}
有人有任何想法吗?
我已经考虑了字节[],但这只是说返回类型是"字节"。
您需要的是ProducesAttribute
,并将内容类型指定为参数(例如,PDF文件的"应用程序/PDF")。
编辑:看来Swagger可能不会在ProducesAttribute
上捡起。然后,我的建议是将Type
放置为ProducesResponseType
,并在方法中添加/// <response code="200">Returns the requested file</response>
注释。