【问题标题】:Unable to setup a custom URL for swagger UI in .NET CORE 3无法在 .NET CORE 3 中为 swagger UI 设置自定义 URL
【发布时间】:2020-11-10 16:58:37
【问题描述】:

我正在使用 .NET CORE 3.1 Web 应用程序并安装了 swagger (Swashbuckle)。我正在尝试将 swagger UI URL 自定义为 /abc/swagger,下面是我正在尝试的配置 -

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

但我收到此错误 -

并且 UI 仅适用于 /abc 而不适用于 /abc/swagger。我迷路了,因为这与我试图关注的 doc 不匹配。

谁能帮我为 Swagger UI 设置自定义路由,TIA。

试过这个https://stackoverflow.com/a/55732702/1182982 但对我不起作用,URL 返回 404。

【问题讨论】:

    标签: .net-core swagger .net-core-3.1


    【解决方案1】:

    Startup.Configure 中你需要定义两个端点,OpenAPI 定义和swagger ui。 Swagger UI 使用 OpenAPI 来准备 IHM。

    public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {
        ...
        // Define the OpenAPI definition endpoint
        app.UseSwagger(c => 
        {
            c.RouteTemplate = "/abc/swagger.json";
        });
        // Define the IHM endpoint
        app.UseSwaggerUI(c =>
        {
            c.SwaggerEndpoint("swagger.json", "My API V1");
            c.RoutePrefix = "abc";
        });
    }
    

    您已正确配置 UI 端点,但我认为您错过了配置 OpenAPI 定义端点的部分。你通过打开导航器的页面来检查,网址为localhost:5001/abc/swagger.json

    【讨论】:

      猜你喜欢
      • 2021-03-01
      • 1970-01-01
      • 2023-03-08
      • 1970-01-01
      • 2020-12-13
      • 2021-05-07
      • 2021-06-01
      • 2019-11-12
      • 2016-11-09
      相关资源
      最近更新 更多