显示 Swagger.json 但 UI 不显示

伊万-马克·德博诺

我有 ASP.Net 6.0 项目,并且我已将 Swagger 配置如下:

services.AddSwaggerGen(c =>
{
    c.SwaggerDoc("v1", new OpenApiInfo {
        Title = "MyApi",
        Version = "v1"
    });
    c.CustomSchemaIds(x => x.FullName);
    c.ResolveConflictingActions(x => x.First());
});

和:

app.UseStaticFiles();

app.UseSwagger();
app.UseSwaggerUI(c =>
{
#if DEBUG
    c.SwaggerEndpoint("/swagger/v1/swagger.json", "MyAPI");
#else
    c.SwaggerEndpoint("/MyApp/swagger/v1/swagger.json", "MyAPI");
#endif
    c.RoutePrefix = string.Empty;
});

swagger.json正在从正确的端点提供服务但 UI 端点返回404 Not Found.

显示 UI 的正确方法是什么?

杰森

经过测试,我觉得这可能是一个需要优化的选项。您的代码是正确的,但现在我们遇到了奇怪的行为。

于是我分析了一下,为什么c.RoutePrefix = string.Empty;在VS2022启动时不生效?但是当我直接访问时https://localhost:port,功能是正常的。

这似乎与VS2022中的设置有关,所以我找到了下面的设置并找到了Url的设置。

在此处输入图像描述

然后我删除了这个swagger值,问题就解决了。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章