• 作者:老汪软件技巧
  • 发表时间:2024-09-17 00:02
  • 浏览量:

显然,API 文档在多种场景中都至关重要:无论是为了给其他团队查看,还是为了公开文档,或只是为了记录可用的 API。Swagger 是一个很好的工具,它相当于一个模板,只要符合规定的格式,就能生成文档。

在这篇博客中,我将一步一步带你了解两种方法:

从现有的 .NET Core 项目中自动生成 Swagger 文档。手动设置 Swagger 文件,并使用 MkDocs 生成静态文档站点。第一部分:从 .NET Core 项目中自动生成 Swagger 文档

假设您已经有一个 .NET Core Web API 项目,这样我们就可以轻松集成 Swagger 以实现自动 API 文档生成。

步骤 1:添加 Swagger NuGet 包

使用 NuGet 管理器或以下命令安装 Swashbuckle.AspNetCore 包:

dotnet add package Swashbuckle.AspNetCore

安装包后,Swagger 会自动配置 Program.cs 文件。由于 .NET 6+ 使用简化的 Program.cs,您无需手动添加 Startup.cs 文件。

步骤 2:验证配置

安装包后,您会注意到 Program.cs 文件中自动添加了必要的 Swagger 配置,包括:

// 了解有关配置 Swagger/OpenAPI 的更多信息,请访问 https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
var app = builder.Build();
// 配置 HTTP 请求管道。
if (app.Environment.IsDevelopment())
{
    app.UseSwagger();
    app.UseSwaggerUI();
}

此配置启用了 Swagger 的生成和 UI。尽管 app.UseSwaggerUI() 留空,但 Swagger UI 仍将以默认 URL 提供:

http://localhost:/swagger

步骤 3:查看自动生成的文档

运行您的项目并导航到 :

/swagger 以查看您的 API 自动生成的 Swagger 文档。

第二部分:手动创建 Swagger YAML/JSON 文件并使用 MkDocs 生成静态站点

为了更好地控制您的 API 文档,您可以手动创建 Swagger 文件并使用 MkDocs 生成静态站点。

步骤 1:项目结构和文件布局

创建一个目录结构来组织您的 Swagger 文档和 MkDocs 配置。基本结构如下:

swagger-server/
│
├── docs/
│   └── api-doc.yml
│   └── index.md
│
├── mkdocs.yml
└── Pipfile

步骤 2:设置虚拟环境

建议设置虚拟环境以便在本地管理依赖项。我们将使用 Pipenv 来方便地管理虚拟环境和依赖项。

假设您已经安装了 Python。如果没有,您需要安装 Python,推荐使用 3.12 版本。

如果您还没有安装 Pipenv,可以通过 pip 安装:

pip install pipenv

接下来,创建一个 Pipfile 来管理项目的依赖项。以下是我们的项目 Pipfile 的内容:

[[source]]
url = "https://pypi.org/simple"
verify_ssl = true
name = "pypi"
[packages]
mkdocs = "*"
mkdocs-render-swagger-plugin = "*"
mkdocs-swagger-ui = "*"
[dev-packages]
[requires]
python_version = "3.12.6"

有了 Pipfile,运行以下命令安装依赖项:

pipenv install

此命令将创建虚拟环境并安装 Pipfile 中指定的所有必需包。

步骤 3:创建 Swagger YAML 文件

在 docs/ 文件夹中,创建 api-doc.yml 以定义您的 API 文档。以下是一个示例:

openapi: 3.0.0
info:
  title: My API
  description: 一个用于演示目的的示例 API
  version: 1.0.0
paths:
  /users:
    get:
      summary: 获取所有用户
      responses:
        '200':
          description: 一组用户对象的 JSON 数组
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    id:
                      type: integer
                    name:
                      type: string
  /users/{id}:
    get:
      summary: 通过 ID 获取用户
      parameters:
        - name: id
          in: path
          required: true
          schema:
            type: integer
      responses:
        '200':
          description: 用户详细信息
        '404':
          description: 用户未找到

步骤 4:配置 MkDocs

在根目录中,创建 mkdocs.yml 文件以配置 MkDocs:

site_name: 我的 API 文档
theme: readthedocs
nav:
- API reference:
  - MyApp: index.md
plugins:
  - swagger-ui-tag

此配置将加载您创建的 Swagger 规范,并应用 swagger-ui-tag 插件以用户友好的格式显示它。

index.md:

src="api-doc.yml"/>

步骤 5:构建和服务文档

一旦一切设置完成,您可以本地构建和服务文档:

mkdocs build // 创建站点文件夹
mkdocs serve // 返回一个可以访问的链接

访问 :8000/ 在浏览器中查看通过 MkDocs 托管的 Swagger 生成的 API 文档。

步骤 6:托管您的文档

要托管您的文档,您可以将 MkDocs 生成的静态站点部署到任何支持静态站点托管的平台上,例如:

结论

在这篇文章中,我们介绍了使用 Swagger 创建 API 文档的两种方法:

自动生成文档,通过 .NET Core 项目,轻松快速地记录您的 API。手动创建 Swagger YAML/JSON 文件 并使用 MkDocs 生成静态文档站点,让您完全控制文档的外观和风格。

这两种方法都非常强大,您可以选择最适合您项目需求的方法。如果您有任何问题或建议,请在下面留言。

祝文档编写愉快!