Cutomize Swagger UI ASP.NET Core Web API

per*_*zzo 7 c# asp.net-web-api swagger swagger-ui asp.net-core

我正在尝试在ASP.NET Core Web API上自定义swagger UI。

我想要这样的用户界面:

在此处输入图片说明

我正在关注这些教程:

这是Startup.cs配置:

// Add the detail information for the API.
services.ConfigureSwaggerGen(options =>
{
    // Determine base path for the application.
    var basePath = _env.WebRootPath;

    // Complete path
    var xmlPath = Path.Combine(basePath, "myapi.xml");

    // Set the comments path for the swagger json and ui.
    options.IncludeXmlComments(xmlPath);
});

app.UseStaticFiles();

// Enable middleware to serve generated Swagger as a JSON endpoint
app.UseSwagger();

// Enable middleware to serve swagger-ui assets (HTML, JS, CSS etc.)
app.UseSwaggerUI(c =>
{                
    c.SwaggerEndpoint("/swagger/v1/swagger.json", "MyAPI");
});  
Run Code Online (Sandbox Code Playgroud)

我已经从git存储库下载了swagger ui文件,并像下面这样放在我的项目中:

在此处输入图片说明

我不知道这是否是正确的做法,但是我看不到任何关于醒目的UI的更改。

Hel*_*eda 3

您正在遵循的教程正在使用:Swashbuckle.AspNetCore不幸的是,在该项目中,他们仍然使用 Swagger-UI 版本 2.x,您的屏幕截图显示版本 3.x


有一些 Pull Request 需要更新到最新的 Swagger-UI:

但不幸的是,合并这些方面并没有太大进展。

我发现您知道如何从 git 存储库下载文件...
我的建议:
不要下载 swagger-ui 文件,而是从使用您需要的版本的 fork 下载整个项目 Swashbuckle.AspNetCore(例如:alexvaluyskiy) /Swashbuckle.AspNetCore),然后在您的项目中添加对该项目的引用而不是 nuget 包。


另一种选择可能是创建您自己的 Swashbuckle.AspNetCore 分支,合并您需要的修复,然后使用不同的名称发布您自己的 Nuget 包。