You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Swashbuckle API添加文本压缩?ASP.NET+IIS环境

Swashbuckle API响应GZIP压缩实现方案

Swashbuckle本身不直接提供响应压缩功能,但可以通过ASP.NET的内置机制或IIS配置,让Swagger相关的API响应和其他接口一样被GZIP压缩。以下分两种项目类型给出实现步骤:

ASP.NET Core 项目

  1. 配置响应压缩服务
    在Program.cs中注册响应压缩服务,并添加Swagger专属的MIME类型:
builder.Services.AddResponseCompression(options =>
{
    options.EnableForHttps = true;
    // 包含默认支持的MIME类型,再追加Swagger相关类型
    options.MimeTypes = ResponseCompressionDefaults.MimeTypes.Concat(new[] 
    {
        "application/vnd.swagger+json",
        "application/vnd.swagger.doc+json"
    });
});
  1. 启用响应压缩中间件
    在Program.cs的中间件管道中,确保UseResponseCompression()在UseSwagger()和UseSwaggerUI()之前调用:
app.UseResponseCompression();

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

ASP.NET Framework 项目(IIS托管)

由于你已经启用了IIS文本压缩,只需确保Swagger相关的MIME类型被纳入压缩范围:

  1. IIS管理器配置
  • 打开IIS管理器,定位到你的站点,点击压缩功能
  • 右侧操作栏选择编辑功能设置,勾选「启用静态内容压缩」和「启用动态内容压缩」
  • 返回压缩界面,点击添加,新增以下MIME类型:
    • application/vnd.swagger+json
    • application/json(若未添加)
  1. web.config 配置
    在web.config的<system.webServer>节点下添加或更新压缩配置:
<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
  <dynamicTypes>
    <add mimeType="application/vnd.swagger+json" enabled="true" />
    <add mimeType="application/json" enabled="true" />
    <add mimeType="text/*" enabled="true" />
  </dynamicTypes>
  <staticTypes>
    <add mimeType="application/vnd.swagger+json" enabled="true" />
    <add mimeType="application/json" enabled="true" />
    <add mimeType="text/*" enabled="true" />
  </staticTypes>
</httpCompression>
<urlCompression doStaticCompression="true" doDynamicCompression="true" />

验证方法

打开浏览器开发者工具的「Network」标签,发起Swagger API请求,检查响应头是否包含Content-Encoding: gzip,同时请求头需存在Accept-Encoding: gzip, deflate(浏览器默认会发送)。

内容的提问来源于stack exchange,提问作者Skary

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 03:20:09