对Swagger UI标头的修改

Ric*_*ard 7 asp.net-web-api swagger-ui swashbuckle

我使用Swashbuckle和Swagger API创建了一个个人WEB API.

虽然我能够成功集成,但我想修改Swagger的默认UI.更改标题的颜色并替换swagger图像.

附件是想要改变的想象的一部分.

这可以通过修改现有文件来实现吗?

Ric*_*ard 13

这些是我采取的步骤:

  1. 创建一个新文件SwaggerHeader.css
  2. 右键单击SwaggerHeader.css,选择" 属性".将Build操作设置为Embedded Resource.
  3. SwaggerConfig.cs,添加以下代码行:
      EnableSwaggerUi("Document/{*assetPath}", c =>
      {
          c.InjectStylesheet(typeof(SwaggerConfig).Assembly,
          "ProjectName.FolderName.SwaggerHeader.css");
      }
Run Code Online (Sandbox Code Playgroud)
  1. 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;
}
Run Code Online (Sandbox Code Playgroud)

  • 在`ProjectName.FolderName.SwaggerHeader.css` 中,`ProjectName.FolderName` 是什么?它是程序集命名空间吗? (2认同)

小智 7

在此输入图像描述

启动

 public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
        {
           

            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseStaticFiles();
            
            .....................
            .....................

            app.UseSwagger();

            app.UseSwaggerUI(c =>
            {
              
                c.SwaggerEndpoint("/swagger/v1/swagger.json",  "API V1");
            
                c.InjectStylesheet("/css/swagger-custom.css");
            });

            
        }

Run Code Online (Sandbox Code Playgroud)

Swagger 自定义 CSS

img[alt="Swagger UI"] {
    display: block;
    -moz-box-sizing: border-box;
    box-sizing: border-box;
    content: url('../images/logo.png');
    max-width: 100%;
    max-height: 100%;
}
.swagger-section #header {
    background-color: #fff !important;
   
}

.swagger-ui .topbar {
    padding: 10px 0;
    background-color: #fff !important;
    border-bottom: 1px solid #dee2e6 !important;
}
    .swagger-ui .topbar .download-url-wrapper .select-label {
        display: flex;
        align-items: center;
        width: 100%;
        max-width: 600px;
        margin: 0;
        color: #121416 !important;
        
    }
Run Code Online (Sandbox Code Playgroud)