广告位招商中 欢迎洽谈

软件工程团队如何使用 Mintlify 和 GitHub 搭建并自动化 API 文档

365Finds Editorial
已收录 11,430 篇 Wiki 文章

让你的 AI 用上 365 Wiki

复制这段快捷提示词,粘贴到你正在使用的 AI 对话中,然后继续提问。AI 会搜索 365 Wiki,帮你查资料、比较方案并给出建议。

下载完整 Skill

偶尔使用,快捷提示词就够了。经常使用,安装 365Wiki Skill:无需每次复制,还能更完整地研究问题、比较选择并规划下一步。没有常用工具?Gemini、Microsoft Copilot 等网页版 AI 也能使用。

365Wiki Skill

软件工程团队经常难以让 API 文档与快速迭代的代码库保持同步,导致接口失效、参数缺失以及开发者体验不佳。将 Mintlify 与 GitHub 结合采用文档即代码(docs-as-code)方法,使团队能够像对待应用程序代码一样,以同等的工程严谨度来管理文档。通过将文档文件直接托管在 Git 仓库中、通过 Mintlify GitHub App 配置自动化部署,并将 OpenAPI 规范集成到持续集成(CI)流水线中,工程组织可以自动生成响应迅速的交互式开发者门户。这种方案消除了手动更新文档的负担,确保 API 参考文档与已部署的代码完全一致,并通过 Pull Request 预览建立流畅的审查工作流。

理解 Mintlify 与 GitHub 的文档即代码(Docs-as-Code)架构

Mintlify 基于文档即代码理念运行,文档源文件存放在 GitHub 仓库中,与生产代码并存或相邻。文档不再依赖静态内容管理系统(CMS)或独立的 Wiki 软件,而是使用 Markdown、MDX 组件和结构化配置文件进行定义。

该架构包含四个核心组件:

+-----------------------------------------------------------------------+
|                           GitHub Repository                           |
|                                                                       |
|  +----------------+  +--------------------+  +---------------------+  |
|  |   mint.json    |  |  docs/**/*.mdx     |  |    openapi.json     |  |
|  | (Site Config)  |  | (Guides & Pages)   |  | (API Specification) |  |
|  +----------------+  +--------------------+  +---------------------+  |
+-----------------------------------------------------------------------+
            |                                         ^
            | (Push to main / Open PR)                | (CI Auto-Sync)
            v                                         |
+-----------------------+                 +-----------------------+
|  Mintlify GitHub App  |                 |  GitHub Actions CI/CD |
|  - Validates syntax   |                 |  - Extract spec from  |
|  - Builds static docs |                 |    backend code       |
|  - Posts PR preview   |                 |  - Commit / Trigger   |
+-----------------------+                 +-----------------------+
            |
            v
+-----------------------------------------------------------------------+
|                      Production Documentation Site                    |
|         (Interactive Developer Portal & Live API Playground)          |
+-----------------------------------------------------------------------+

搭建文档代码仓库

工程团队既可以在独立的文档仓库中实施 Mintlify,也可以在现有的应用程序单体仓库(Monorepo)中实现。从清晰的目录布局开始,可以确保直观的导航和清晰的 CI/CD 边界。

1. 仓库结构

标准的 Mintlify 文档工作区遵循以下文件结构:

my-docs-repo/
├── .github/
│   └── workflows/
│       └── sync-api-spec.yml
├── docs/
│   ├── api-reference/
│   │   ├── authentication.mdx
│   │   └── errors.mdx
│   ├── guides/
│   │   ├── quickstart.mdx
│   │   └── rate-limits.mdx
│   └── openapi.json
└── mint.json

2. 配置 mint.json

mint.json 文件控制视觉主题、顶级导航和 API 参考文档的引入。团队通过配置 navigation 数组来组织概念指南,并自动链接 OpenAPI 规范中定义的 API 端点:

{
  "$schema": "https://mintlify.com/schema.json",
  "name": "Acme Developer Platform",
  "logo": {
    "dark": "/logo/dark.svg",
    "light": "/logo/light.svg"
  },
  "favicon": "/favicon.svg",
  "colors": {
    "primary": "#0F52BA",
    "light": "#4B9CD3",
    "dark": "#002D62"
  },
  "navigation": [
    {
      "group": "Getting Started",
      "pages": [
        "docs/guides/quickstart",
        "docs/guides/rate-limits"
      ]
    },
    {
      "group": "API Reference",
      "pages": [
        "docs/api-reference/authentication",
        "docs/api-reference/errors"
      ],
      "openapi": "docs/openapi.json"
    }
  ],
  "api": {
    "baseUrl": "https://api.acme.com/v1"
  }
}

3. 使用 Mintlify CLI 进行本地开发

工程师在推送到 GitHub 之前应在本地验证文档更改。Mintlify CLI 提供了支持热重载的本地开发服务器:

  1. 全局安装 CLI 或使用 npx 运行:
    npm install -g mint
    
  2. 进入包含 mint.json 的目录并启动开发服务器:
    mint dev
    
  3. 在浏览器中打开 http://localhost:3000。对 .mdx 文件、mint.json 或 OpenAPI 模式所做的任何修改都会即时重新加载。

通过 Mintlify GitHub App 实现自动化部署

连接 GitHub 与 Mintlify 的核心自动化机制是 Mintlify GitHub App。安装后,它将替代手动构建和部署脚本。

安装与分支配置

  1. 登录 Mintlify 控制台并导航至 Settings > Git Settings。
  2. 点击 Install GitHub App 并选择组织和目标仓库。
  3. 配置 Deployment Branch(通常为 main)。每当提交被推送到或合并进该分支时,Mintlify 都会触发生产构建。
  4. 如果文档位于 Monorepo 的子目录中(例如 /docs),请启用子目录开关并指定路径。这将限制构建,使 Mintlify 仅在文档目录内的文件发生更改时才触发。

Pull Request 预览与审查门禁

当工程师发起修改文档文件的 Pull Request 时,GitHub App 会自动执行构建检查,并在 PR 中留言附上唯一的预览 URL:

通过 GitHub Actions 自动化更新 OpenAPI 规范

概念指南通常使用 MDX 手动编写,而 API 参考文档则应始终直接派生自源代码。当后端工程师修改接口路由、请求载荷或响应模式时,自动化流水线必须更新文档目录中的 OpenAPI 规范文件。

在单体仓库(Monorepo)中同步规范

在 API 服务代码(例如 FastAPI、Express、NestJS 或 Go)与文档并存的 Monorepo 中,GitHub Actions 可以在每次提交时生成最新规范,并保持文档目录为最新状态。

以下 GitHub Actions 工作流展示了如何从后端服务中提取 OpenAPI 模式并触发 Mintlify 部署:

name: Sync OpenAPI Spec and Deploy Docs

on:
  push:
    branches:
      - main
    paths:
      - 'services/api/**'
      - 'docs/**'

jobs:
  sync-and-deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout Repository
        uses: actions/checkout@v4

      - name: Set up Python Environment
        uses: actions/setup-python@v5
        with:
          python-version: '3.11'

      - name: Install Dependencies
        run: |
          pip install -r services/api/requirements.txt

      - name: Generate OpenAPI Specification
        run: |
          python -c "import json; from services.api.main import app; print(json.dumps(app.openapi()))" > docs/openapi.json

      - name: Check for Spec Changes
        id: git-diff
        run: |
          git diff --quiet docs/openapi.json || echo "changed=true" >> $GITHUB_OUTPUT

      - name: Commit and Push Updated Spec
        if: steps.git-diff.outputs.changed == 'true'
        run: |
          git config user.name "github-actions[bot]"
          git config user.email "github-actions[bot]@users.noreply.github.com"
          git add docs/openapi.json
          git commit -m "chore(docs): auto-update openapi.json from backend"
          git push origin main

      - name: Trigger Mintlify Deployment
        run: |
          curl -X POST https://api.mintlify.com/api/deploy \
            -H "Authorization: Bearer ${{ secrets.MINTLIFY_API_TOKEN }}"

多仓库同步架构

在微服务架构中,后端服务通常存放在与集中式文档门户分离的独立仓库中,团队可使用 Repository Dispatch 事件或直接 API 调用:

  1. 服务 CI: 当后端服务在其独立仓库中构建时,CI 生成 openapi.json。
  2. Dispatch 或 PR: 工作流使用 GitHub Personal Access Token 向文档仓库派发 Webhook 事件,以更新后的规范发起自动化 Pull Request。
  3. 验证与合并: 文档仓库运行模式 Lint 检查,生成 Mintlify 预览,并在获得批准后合并更新。

API 文档自动化最佳实践

为了在不断扩大的工程团队中保持高标准的文档质量,建议执行以下运维标准:

实践实施机制收益
模式验证在合并前于 CI 中运行 mint validate 或 Spectral Linter。防止损坏的 OpenAPI 模式或无效的参数类型进入生产环境。
原子化代码与文档 PR要求 API 代码变更与对应的文档更新包含在同一个 PR 中。消除发布功能与发布其对应文档之间的时间差。
环境变量安全切勿将 API 密钥或生产机密提交到 OpenAPI 服务器配置块中。保护基础设施安全,同时允许用户在交互式测试控制台中输入测试密钥。
端点打标(Tagging)在代码注解中通过一致的 tags 组织 OpenAPI 路径。Mintlify 会根据标签自动将端点分组为结构化的导航板块。
变更日志自动化使用 GitHub Releases 或 Git 标签在 docs/changelog.mdx 中生成发布说明。让调用方及时了解弃用声明、速率限制调整和新功能。

通过将 API 文档视作代码、将源文件托管在 GitHub 中,并实现部署与规范流水线的自动化,软件工程团队可以彻底消除文档漂移,加速开发者上手流程,并交付一个随每次代码发布始终保持准确的交互式 API 门户。