C#怎么配置Swagger接口文档_C# WebAPI自动生成文档【基础】

来源:AI社区作者:上海网站建设头衔:草根站长
导读:本期聚焦于小伙伴创作的《C#怎么配置Swagger接口文档_C# WebAPI自动生成文档【基础】》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《C#怎么配置Swagger接口文档_C# WebAPI自动生成文档【基础】》有用,将其分享出去将是对创作者最好的鼓励。

在C# WebAPI项目开发过程中,接口文档是前后端协作的重要依据,手动维护接口文档不仅效率低,还容易出现文档与实际接口不匹配的问题,而Swagger可以自动根据项目中的接口代码生成可视化的接口文档,大幅降低文档维护成本。

C#怎么配置Swagger接口文档_C# WebAPI自动生成文档【基础】

环境准备

本文示例基于.NET 6的WebAPI项目,首先需要确保项目已经创建完成,并且可以正常启动运行。如果使用的是更早的.NET Framework版本的WebAPI项目,配置逻辑类似,只是引入包的方式和中间件注册的位置会有细微差异。

安装Swagger相关NuGet包

打开项目的NuGet包管理器,搜索并安装Swashbuckle.AspNetCore包,这是Swagger在.NET生态中的核心实现包,安装完成后就可以开始配置Swagger的相关功能。

基础配置步骤

注册Swagger服务

打开项目中的Program.cs文件,在构建应用的主逻辑中添加Swagger服务的注册代码,具体代码如下:

// 注册Swagger生成器服务,配置文档基础信息
builder.Services.AddSwaggerGen(options =>
{
    // 设置文档的标题
    options.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo
    {
        Title = "示例WebAPI接口文档",
        Version = "v1",
        Description = "这是基于C# WebAPI生成的Swagger接口文档示例"
    });
});

启用Swagger中间件

服务注册完成后,需要在请求管道中启用Swagger的中间件,让Swagger可以在项目运行时生成并展示接口文档,代码如下:

var app = builder.Build();

// 判断当前环境是否为开发环境,开发环境下启用Swagger
if (app.Environment.IsDevelopment())
{
    // 启用Swagger中间件,生成接口文档的JSON数据
    app.UseSwagger();
    // 启用Swagger UI中间件,展示可视化的接口文档页面
    app.UseSwaggerUI(options =>
    {
        // 设置Swagger UI页面的文档端点
        options.SwaggerEndpoint("/swagger/v1/swagger.json", "示例WebAPI接口文档 v1");
        // 设置Swagger UI的路由前缀,默认是/swagger
        options.RoutePrefix = "swagger";
    });
}

验证配置效果

完成上述配置后,启动项目,在浏览器中访问https://localhost:端口号/swagger,就可以看到自动生成的接口文档页面,页面中会展示项目中所有的接口路由、请求方式、参数说明等信息。

接口注释显示配置

默认情况下Swagger不会显示接口和参数的注释内容,需要额外配置才能将代码中的XML注释同步到接口文档中。首先需要在项目属性中开启XML文档生成,步骤如下:

  • 右键点击项目,选择属性
  • 在生成选项卡中找到输出部分,勾选生成XML文档文件
  • 记录下XML文件的路径,后续配置会用到

然后在AddSwaggerGen的配置中添加读取XML文档的代码:

builder.Services.AddSwaggerGen(options =>
{
    options.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo
    {
        Title = "示例WebAPI接口文档",
        Version = "v1",
        Description = "这是基于C# WebAPI生成的Swagger接口文档示例"
    });

    // 获取XML文档的路径
    var xmlFile = $"{System.Reflection.Assembly.GetExecutingAssembly().GetName().Name}.xml";
    var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
    // 包含XML文档中的注释
    options.IncludeXmlComments(xmlPath, includeControllerXmlComments: true);
});

配置完成后,在控制器的接口方法上添加XML注释,重新启动项目就可以在Swagger文档中看到对应的注释内容了。

常见问题说明

  • 如果访问Swagger页面出现404错误,需要检查中间件的启用顺序,确保UseSwaggerUseSwaggerUI在路由中间件之前注册
  • 如果XML注释没有显示,需要检查XML文件的路径是否正确,以及是否勾选了生成XML文档文件的选项
  • 生产环境建议关闭Swagger文档的访问权限,避免接口信息泄露,可以通过环境变量判断只在开发环境启用相关中间件

C#SwaggerWebAPI接口文档生成修改时间:2026-07-13 02:39:24

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。