我使用Swagger for dotnet core来记录我的dotnet核心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);
}
}
有没有人有任何想法?
我已经考虑过byte [],但只是说返回类型是&#34; byte&#34;。
答案 0 :(得分:6)
您需要的是ProducesAttribute
并指定内容类型作为参数(例如&#34; application / pdf&#34; PDF文件)。
编辑:看来Swagger可能无法选择ProducesAttribute
。我的建议是将[{1}}设置为Type
,并为该方法添加ProducesResponseType
条评论。