gpt4 book ai didi

swagger - 调试 Swashbuckle 错误 - 无法加载 API 定义

转载 作者:行者123 更新时间:2023-12-02 06:05:20 29 4
gpt4 key购买 nike

有什么方法可以获取 Swashbuckle/Swagger 错误的堆栈跟踪或内部异常吗?在某个时候,它停止工作了。我不确定是否是在我从 .Net Core 2.0 升级到 2.1 时发生的,但我很确定它在那之后仍然可以工作。当我导航到 myapidomain/swagger/index.html 时,出现此错误:

enter image description here

这不是很有帮助。它在大约两周前工作......我没有更改任何 Swagger 配置。和以前一样:

public void ConfigureServices(IServiceCollection services)
{
...
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1", new Info
{
Version = "v1",
Title = "My.API",
Description = "Test"
});
});
}


public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
app.UseDeveloperExceptionPage();
else
app.UseHsts();

app.UseSwagger();
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1/swagger.json", "PropWorx API V1");
});
...
}

我在 ASP.Net Core 2.1 Web API 上使用 Swashbuckle.AspNetCore 3.0.0。

最佳答案

同意 UI 调试并不是真正有用,但是可以通过打开浏览器的调试工具(例如 Chrome 上的 F12)、刷新 /swagger 端点来抓取完整的异常跟踪,并且然后检查 swagger.json 有效负载 - 这是一个 XHR 请求,该请求将失败并显示 500 状态代码。

(我建议在大型项目中为链接添加书签,以便将来您可以直接转到 json 文件,例如 https://MyHost/swagger/v1/swagger.json)

例如在下面的人为错误中,我在两种方法之间复制了相同的路线:

[HttpGet]
[Route("parseenum")]
public ActionResult CheckEnum([FromQuery] MyEnum someEnum)
...

[HttpGet]
[Route("parseenum")]
public ActionResult CheckEnum2([FromQuery] MyEnum someEnum)
...

这会产生错误:

SwaggerError

您现在应该能够找到并修复该问题。

关于swagger - 调试 Swashbuckle 错误 - 无法加载 API 定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51668952/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com