我使用Swashbuckle和Swagger API创建了一个个人WEB API。
虽然我能够成功集成,但我想修改Swagger的默认UI。更改标题的颜色并替换swagger图像。
这可以通过修改现有文件来实现吗?
这些是我采取的步骤:
SwaggerHeader.css
,选择Properties。将Build操作设置为Embedded Resource。SwaggerConfig.cs
中,添加以下代码行: EnableSwaggerUi("Document/{*assetPath}", c =>
{
c.InjectStylesheet(typeof(SwaggerConfig).Assembly,
"ProjectName.FolderName.SwaggerHeader.css");
}
SwaggerHeader.css
如下所示:/* swagger ui customization */
body.swagger-section #header {
background-color: white;
background: url(your-new-logo.png) no-repeat;
background-position-x: 250px;
height: 50px;
}
body.swagger-section #header .swagger-ui-wrap #logo {
display: none;
}
要更改颜色,可以注入新的样式表
从SwaggerConfig.cs文件中引用
使用“InjectStylesheet”选项可以使用一个或多个条件CSS样式表丰富UI。该文件必须作为“嵌入式资源”包含在项目中,然后将资源的“逻辑名称”传递给方法,如下所示。
c.InjectStylesheet(containingAssembly,"Swashbuckle.Dummy.SwaggerExtensions.testStyles1.css");
请记住将样式表的Build Action设置为“Embedded Resource”。
.swagger-section #header { background-color: #fadc00; }
它基于Project的默认命名空间,文件位置和文件扩展名。例如,给定默认命名空间“YourWebApiProject”和文件位于“/SwaggerExtensions/index.html”,则资源将被分配名称 - “YourWebApiProject.SwaggerExtensions.index.html”
例如 :
.EnableSwaggerUi(c =>
{
c.InjectStylesheet(thisAssembly, "Some.Default.Namespace.App_Start.swagger.css");
});