0

0

.NET Web API如何使用Swagger生成API文档_Swagger API文档生成指南

月夜之吻

月夜之吻

发布时间:2025-11-09 13:10:03

|

599人浏览过

|

来源于php中文网

原创

答案:本文介绍在.NET Web API中集成Swagger的方法。首先安装Swashbuckle.AspNetCore包,然后在Program.cs中添加AddEndpointsApiExplorer和AddSwaggerGen服务,并配置UseSwagger与UseSwaggerUI中间件以启用文档界面;接着通过启用XML文档生成并指定路径实现详细注释展示,包括控制器摘要和响应码;最后可自定义标题、版本信息及JWT认证支持,提升API文档可读性与测试便利性,从而提高开发效率和协作体验。

.net web api如何使用swagger生成api文档_swagger api文档生成指南

在开发 .NET Web API 项目时,API 文档的清晰性和可读性对前后端协作至关重要。Swagger(现称为 OpenAPI)是一个强大的工具,能自动生成交互式 API 文档,帮助开发者快速理解接口用法。本文将详细介绍如何在 .NET Web API 中集成并配置 Swagger,实现自动化文档生成。

1. 安装 Swagger 包(Swashbuckle.AspNetCore)

要在 .NET 6 或 .NET 7+ 的 Web API 项目中启用 Swagger,首先需要安装 Swashbuckle.AspNetCore 包。该包是目前最常用的 Swagger 集成方案。

通过 NuGet 包管理器或命令行安装:

dotnet add package Swashbuckle.AspNetCore

安装完成后,即可在项目中配置 Swagger 中间件。

2. 配置 Swagger 服务和中间件

Program.cs 文件中注册 Swagger 服务,并添加对应的中间件。

示例代码如下:

var builder = WebApplication.CreateBuilder(args); // 添加 Swagger 服务 builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); var app = builder.Build(); // 启用 Swagger 中间件 if (app.Environment.IsDevelopment()) { app.UseSwagger(); app.UseSwaggerUI(c => { c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1"); c.RoutePrefix = "api/docs"; // 自定义访问路径,如 /api/docs }); } app.UseHttpsRedirection(); app.MapControllers(); app.Run();

说明:

ToonMe
ToonMe

一款风靡Instagram的软件,一键生成卡通头像

下载
  • AddEndpointsApiExplorer():用于收集 API 元数据。
  • AddSwaggerGen():生成 OpenAPI 文档。
  • UseSwagger():启用 Swagger JSON 端点(如 /swagger/v1/swagger.json)。
  • UseSwaggerUI():提供可视化界面,默认路径为 /swagger。

3. 添加控制器和 Action 的注释文档

为了让 Swagger 显示更详细的说明,建议为控制器和方法添加 XML 注释。这些注释会自动显示在 Swagger UI 中。

步骤如下:

  1. 在 .csproj 文件中启用 XML 文档生成:
true$(NoWarn);1591
  1. AddSwaggerGen 中指定 XML 文件路径:
builder.Services.AddSwaggerGen(c => { var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml"; var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile); c.IncludeXmlComments(xmlPath); });
  1. 为控制器或方法添加 XML 注释,例如:
/// /// 获取所有用户信息 /// /// 返回用户列表 /// 请求成功 [HttpGet] [ProducesResponseType(typeof(IEnumerable), 200)] public IActionResult GetUsers() { // ... }

这样,Swagger UI 就会显示摘要、返回值说明和响应状态码

4. 自定义 Swagger 配置(可选)

你可以进一步优化 Swagger 的展示效果:

  • 更改标题和版本
c.SwaggerDoc("v1", new OpenApiInfo { Title = "用户管理 API", Version = "v1", Description = "用于管理用户信息的 RESTful 接口" });
  • 添加 JWT 认证支持
c.AddSecurityDefinition("Bearer", new OpenApiSecurityScheme { In = ParameterLocation.Header, Description = "请输入 JWT token", Name = "Authorization", Type = SecuritySchemeType.Http, Scheme = "bearer" }); c.AddSecurityRequirement(new OpenApiSecurityRequirement { { new OpenApiSecurityScheme { Reference = new OpenApiReference { Type = ReferenceType.SecurityScheme, Id = "Bearer" } }, new string[] {} } });

配置后,Swagger UI 会提供 “Authorize” 按钮,方便测试带 Token 的接口。

基本上就这些。只要完成上述步骤,你的 .NET Web API 就拥有了一个功能完整、界面友好的 API 文档系统。Swagger 不仅提升了开发效率,也降低了沟通成本。不复杂但容易忽略的是 XML 注释和路径配置,建议每个项目都标准化启用。

相关专题

更多
PHP API接口开发与RESTful实践
PHP API接口开发与RESTful实践

本专题聚焦 PHP在API接口开发中的应用,系统讲解 RESTful 架构设计原则、路由处理、请求参数解析、JSON数据返回、身份验证(Token/JWT)、跨域处理以及接口调试与异常处理。通过实战案例(如用户管理系统、商品信息接口服务),帮助开发者掌握 PHP构建高效、可维护的RESTful API服务能力。

146

2025.11.26

什么是中间件
什么是中间件

中间件是一种软件组件,充当不兼容组件之间的桥梁,提供额外服务,例如集成异构系统、提供常用服务、提高应用程序性能,以及简化应用程序开发。想了解更多中间件的相关内容,可以阅读本专题下面的文章。

178

2024.05.11

Golang 中间件开发与微服务架构
Golang 中间件开发与微服务架构

本专题系统讲解 Golang 在微服务架构中的中间件开发,包括日志处理、限流与熔断、认证与授权、服务监控、API 网关设计等常见中间件功能的实现。通过实战项目,帮助开发者理解如何使用 Go 编写高效、可扩展的中间件组件,并在微服务环境中进行灵活部署与管理。

213

2025.12.18

json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

412

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

533

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

310

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

75

2025.09.10

string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

318

2023.08.02

PS使用蒙版相关教程
PS使用蒙版相关教程

本专题整合了ps使用蒙版相关教程,阅读专题下面的文章了解更多详细内容。

23

2026.01.19

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
WEB前端教程【HTML5+CSS3+JS】
WEB前端教程【HTML5+CSS3+JS】

共101课时 | 8.4万人学习

JS进阶与BootStrap学习
JS进阶与BootStrap学习

共39课时 | 3.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号