当函数 returns 文件时无法加载 API 定义
Failed to load API definition when a function returns a file
我的 API 项目带有 ASP.NET Core
(.NET5)。一切正常,Swagger 页面显示所有 API。现在,我想在控制器中添加一个函数来导出 Excel 文件。控制器中的代码是这样的:
[HttpGet]
public IActionResult DownloadExcel()
{
byte[] reportBytes;
using (var package = _utils.CreateCommentPackage())
{
reportBytes = package.GetAsByteArray();
}
return File(reportBytes, XlsxContentType,
$"Comments-{DateTime.Now.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture)}.xlsx");
}
非常简单,但未创建 Swagger 定义。当我打开 Swagger 页面时,我看到
如果我删除此功能,Swagger 将再次运行。
您需要添加路由,修改如下代码;
[HttpGet]
[Route("api/DownloadExcel")]
public IActionResult DownloadExcel()
{
byte[] reportBytes;
using (var package = _utils.CreateCommentPackage())
{
reportBytes = package.GetAsByteArray();
}
return File(reportBytes, XlsxContentType,
$"Comments-{DateTime.Now.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture)}.xlsx");
}
我的 API 项目带有 ASP.NET Core
(.NET5)。一切正常,Swagger 页面显示所有 API。现在,我想在控制器中添加一个函数来导出 Excel 文件。控制器中的代码是这样的:
[HttpGet]
public IActionResult DownloadExcel()
{
byte[] reportBytes;
using (var package = _utils.CreateCommentPackage())
{
reportBytes = package.GetAsByteArray();
}
return File(reportBytes, XlsxContentType,
$"Comments-{DateTime.Now.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture)}.xlsx");
}
非常简单,但未创建 Swagger 定义。当我打开 Swagger 页面时,我看到
如果我删除此功能,Swagger 将再次运行。
您需要添加路由,修改如下代码;
[HttpGet]
[Route("api/DownloadExcel")]
public IActionResult DownloadExcel()
{
byte[] reportBytes;
using (var package = _utils.CreateCommentPackage())
{
reportBytes = package.GetAsByteArray();
}
return File(reportBytes, XlsxContentType,
$"Comments-{DateTime.Now.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture)}.xlsx");
}