ASP.NET Core WebApi 中配置 Swagger

在前后端分离开发中,配置Swagger 可以免写接口文档,大大减少工作量,Swagger 简洁高效,官网地址:https://swagger.io/,本篇博客介绍如何在.NET Core WebApi 中配置 Swagger

官方教程:https://docs.microsoft.com/zh-cn/aspnet/core/tutorials/getting-started-with-swashbuckle?view=aspnetcore-3.1&tabs=visual-studio

1、引入Swagger包

NuGet地址:https://www.nuget.org/packages

在NuGet中搜索 Swashbuckle.AspNetCore 找到 Swagger 包

在程序包管理器控制台中输入如下代码

01
Install-Package Swashbuckle.AspNetCore -Version 5.3.3

在依赖项中出现 Swashbuckle.AspNetCore 表示添加成功

2、配置Swagger中间件

2.1、在 Startup 类的 ConfigureServices 方法中添加 Swagger 服务并配置文档信息

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
public void ConfigureServices(IServiceCollection services)
{
    // 注册Swagger服务
    services.AddSwaggerGen(c =>
    {
        // 添加文档信息
        c.SwaggerDoc("v1", new OpenApiInfo
        {
            Title = "TestWebApi",
            Version = "v1",
            Description = "测试API",
            Contact = new OpenApiContact
            {
                Name = "Kebele8",
                Email = "123456789@qq.com"
            }
        });
    });
}

2.2、在 Startup 类的 Configure 方法中,启用中间件为生成的 JSON 文档和 Swagger UI 提供服务

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    app.UseHttpsRedirection();
    // 启用Swagger中间件
    app.UseSwagger();
    // 配置SwaggerUI
    app.UseSwaggerUI(c =>
    {
        c.SwaggerEndpoint("/swagger/v1/swagger.json", "TestWebApi");
        c.RoutePrefix = string.Empty; //路由前缀设置为空
    });
    app.UseMvc();
}

3、显示XML注释

3.1、使用XML注释

启用XML注释之后可以轻松映射到UI界面方便前端开发人员理解

右键当前项目,编辑 .csproj 文件,在PropertyGroup标签组中添加如下代码:

01
02
03
04
<!--启用XML注释,并忽略未写注释的警告-->
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<!--不添加1591如果某个方法未写 "///"各式的注释,会有警示的消息-->
<NoWarn>$(NoWarn);1591</NoWarn>

3.2、AddSwaggerGen()方法中读取xml文件路径并启用

01
02
03
04
05
06
07
08
09
10
services.AddSwaggerGen(c =>
{
    #region 读取xml信息
    // 使用反射获取xml文件,并构造出文件的路径
    var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
    var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
    // 启用xml注释,该方法第二个参数启用控制器的注释,默认为false.
    c.IncludeXmlComments(xmlPath, true);
    #endregion
});

3.3、配置启动地址

右键项目→调试,设置启动浏览器路径,复制 应用URL 到 启动浏览器路径

运行,效果图如下:

请求接口显示如下:

model也会显示在下方

End!

posted @   Wahaha、  阅读(1333)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
点击右上角即可分享
微信分享提示