首页
/ ASP.NET Core Web API 文档生成指南:使用 Swagger/OpenAPI

ASP.NET Core Web API 文档生成指南:使用 Swagger/OpenAPI

2025-07-06 04:20:20作者:尤峻淳Whitney

什么是 Swagger/OpenAPI?

Swagger(现称为 OpenAPI)是一个与语言无关的规范,用于描述 RESTful API。它通过标准化的方式让计算机和人类都能理解 API 的功能,而无需直接查看源代码。在 ASP.NET Core 项目中,Swagger 主要能帮助我们:

  1. 自动生成 API 文档
  2. 提供交互式 API 测试界面
  3. 简化前后端协作流程

OpenAPI 与 Swagger 的关系

  • OpenAPI 是规范标准(类似于接口定义)
  • Swagger 是围绕 OpenAPI 规范的工具集(包括 UI 界面、代码生成器等)

核心组件解析

OpenAPI 规范文件

这是一个 JSON 格式的文件(通常命名为 openapi.json),它完整描述了你的 API:

{
  "openapi": "3.0.1",
  "info": {
    "title": "示例API",
    "version": "v1"
  },
  "paths": {
    "/api/Products": {
      "get": {
        "summary": "获取产品列表",
        "responses": {
          "200": {
            "description": "成功返回产品列表"
          }
        }
      }
    }
  }
}

Swagger UI

这是一个可视化界面,基于 OpenAPI 规范自动生成,提供以下功能:

  1. API 端点可视化展示
  2. 交互式测试功能
  3. 模型定义查看

在 ASP.NET Core 中的实现方式

ASP.NET Core 主要支持两种实现方案:

  1. Swashbuckle - 最流行的实现方案,安装简单,功能全面
  2. NSwag - 另一种选择,支持从代码生成 TypeScript 客户端

基础集成步骤

  1. 添加 NuGet 包:

    • Swashbuckle.AspNetCore(用于 Swashbuckle 方案)
  2. 在 Program.cs 中配置:

builder.Services.AddSwaggerGen(c => {
    c.SwaggerDoc("v1", new OpenApiInfo { Title = "我的API", Version = "v1" });
});

app.UseSwagger();
app.UseSwaggerUI(c => {
    c.SwaggerEndpoint("/swagger/v1/swagger.json", "我的API V1");
});
  1. 启用 XML 注释(增强文档): 在项目文件中添加:
    <PropertyGroup>
      <GenerateDocumentationFile>true</GenerateDocumentationFile>
    </PropertyGroup>
    

安全注意事项

为了保护 Swagger 端点,可以添加授权要求:

app.MapSwagger().RequireAuthorization();

这样访问 /swagger 端点时需要提供有效的认证令牌。

最佳实践建议

  1. 完善注释:使用 XML 注释为控制器和模型添加详细描述
  2. 版本控制:为不同 API 版本创建单独的文档
  3. 示例数据:为请求/响应提供示例数据
  4. 自定义样式:根据需要定制 Swagger UI 外观

常见问题解决

  1. 文档不完整:确保所有公共 API 方法都有适当的注释
  2. 模型未显示:检查是否所有模型类都是公共的
  3. 授权问题:正确配置 JWT 或其他认证方案

通过本文介绍的方法,你可以轻松地为 ASP.NET Core Web API 添加专业级的文档支持,大大提高 API 的可用性和开发效率。