c# - Swashbuckle/Swagger + ASP.Net Core:“加载 API 定义失败”
问题描述
我开发了一个 ASP.NET Core 2 应用程序并包含了 Swagger。一切正常,直到我引入了一个没有明确定义 HTTP 操作的方法:
public class ErrorController : Controller
{
[Route("/error")]
public IActionResult Index()
{
return StatusCode(500, new Error("Internal error."));
}
}
当我使用此方法启动应用程序时,出现以下消息:
未能加载 API 定义。
错误
获取错误内部服务器错误/swagger/v1/swagger.json
一旦我明确设置例如[HttpGet]
错误消失。问题是,我需要这个方法来触发所有可能的 HTTP 操作。当然,我可以明确指定所有操作,但我觉得 Swagger 应该能够正确处理这个问题。
为什么 Swagger 会这样?
有什么我可以使用的配置吗?
解决方案
为每个 Action 方法添加 Httpxxx( [HttpGet]
, [HttpPost]
, ...) 属性,或者[ApiExplorerSettings(IgnoreApi = true)]
推荐阅读
- wix - WIX 更新程序不使用以前版本的设置参数
- python-3.x - 无法在 docker-compose 文件中为 argparse 传递参数
- javascript - 使用 CSS 或 Javascript 从 Github Gist 列表中删除 / (textnode)
- docker - 如何连接和加密在不同服务器上运行的 docker 之间的流量?
- javascript - 为什么 javascript 中的 slice() 接受浮点值?
- docker - 如何解决“在 docker 日志中找不到令牌:就绪\。”
- python - argsort 获取每个元素的顺序
- service - 如何在树莓派桌面后激活服务(不是立即启动)?
- powershell - 如何检查 dhcp IP 何时释放?
- cloud - 如何阻止对谷歌云存储桶的所有访问