繁体   English   中英

显示 Swagger.json 但 UI 不显示

[英]Swagger.json is displayed but the UI not

我有 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值,问题就解决了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM