我正在尝试在我的ASP.NET Core Web API上自定义swagger UI .
我希望这样的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");
});
我已经从git存储库下载了swagger ui文件并将其放在我的项目中:
我不知道这是否是正确的做法,但我无法看到对swagger UI的任何更改 .
3 回答
您正在使用的教程正在使用: Swashbuckle.AspNetCore 很遗憾在该项目中他们仍然使用Swagger-UI版本2.x,您的屏幕截图显示版本3.x
有一些Pull请求更新到最新的Swagger-UI:
https://github.com/domaindrivendev/Swashbuckle.AspNetCore/pull/453
https://github.com/domaindrivendev/Swashbuckle.AspNetCore/pull/543
但不幸的是,在合并这些方面没有太大进展 .
我知道你知道如何从git存储库下载文件......
My recommendation:
而不是下载swagger-ui文件,从使用您需要的版本的fork(例如:alexvaluyskiy/Swashbuckle.AspNetCore)下载整个项目Swashbuckle.AspNetCore,然后在您的项目中添加对该项目的引用而不是nuget包 .
另一种选择可能是创建自己的Swashbuckle.AspNetCore分支合并您需要的修补程序,然后使用不同的名称发布您自己的Nuget包 .
我遇到了类似的问题,我需要注入我的样式表:
这已添加到Startup.cs文件中的
app.UseSwaggerUI
.以下文章有所帮助,但我必须合并两者的信息才能找到答案:
https://cpratt.co/customizing-swagger-ui-in-asp-net-core/
https://docs.microsoft.com/en-us/aspnet/core/tutorials/getting-started-with-swashbuckle?view=aspnetcore-2.1&tabs=visual-studio%2Cvisual-studio-xml