Skip to content
Back to skills

Doa Apidoc

ASecurity

从需求描述或后端代码生成专业的接口说明文档(API Specification)。 支持 PDF(reportlab)和 Word(python-docx)两种输出格式,商务蓝色主题。 完整工作流: (1) 用户提供需求描述/后端代码/接口定义 (2) 使用 vscode_askQuestions 确认输出格式(PDF / Word / 都要) (3) AI 结构化整理为标准接口文档格式 (4) 生成 Python 脚本并运行输出文档 USE FOR: 生成接口文档、API文档、接口设计说明书、接口说明文档、 API接口文档PDF、API接口文档Word、从代码生成接口文档、 从需求生成接口文档、接口设计文档。 DO NOT USE FOR: 会议纪要(使用 doa-metting skill)、PPT(使用 doa-ppt skill)、 通用PDF处理(使用 pdf skill)。

  • 4 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added May 31, 2026
ai-agentspythonbashapi

Works with

  • vscode
  • api

Security analysis

A96/100
  • mediumInstalls packages at runtime which could introduce malicious dependencies

Pro scans all 3 files and shows the line behind each finding

Scanned May 31, 2026

npx -y skills add medalsoftchina/workcopilot --skill doa-apidoc --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Doa Apidoc?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Doa Apidoc
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/medalsoftchina-doa-apidoc/badge)](https://www.skillsdirectory.com/skills/medalsoftchina-doa-apidoc)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: doa-apidoc
description: >
  从需求描述或后端代码生成专业的接口说明文档(API Specification)。
  支持 PDF(reportlab)和 Word(python-docx)两种输出格式,商务蓝色主题。
  完整工作流:
  (1) 用户提供需求描述/后端代码/接口定义
  (2) 使用 vscode_askQuestions 确认输出格式(PDF / Word / 都要)
  (3) AI 结构化整理为标准接口文档格式
  (4) 生成 Python 脚本并运行输出文档
  USE FOR: 生成接口文档、API文档、接口设计说明书、接口说明文档、
  API接口文档PDF、API接口文档Word、从代码生成接口文档、
  从需求生成接口文档、接口设计文档。
  DO NOT USE FOR: 会议纪要(使用 doa-metting skill)、PPT(使用 doa-ppt skill)、
  通用PDF处理(使用 pdf skill)。
---

# 接口说明文档生成

## 工作流

```
用户提供需求/代码 → 确认输出格式(PDF/Word/Both) → AI 结构化整理 → 生成 Python 脚本 → 运行输出文档
```

## Step 0: 确认输出格式

**必须在生成前使用 `vscode_askQuestions` 确认:**

```
问题: 文档输出格式
选项:
  - PDF(适合交付/归档)  ← recommended
  - Word(适合后续编辑)
  - 都要
```

## Step 1: 收集与整理接口信息

从用户提供的需求描述、后端代码、或接口定义中,提取并结构化为以下标准章节:

### 文档元信息(封面)

| 字段 | 说明 |
|------|------|
| 文档标题 | 如「接口说明文档」 |
| 副标题 | 项目名 + 文档类型描述 |
| 文档版本 | V1.0 |
| 编制方 | 默认「{vendor_name}」,用户可覆盖 |
| 接收方 | 文档接收方 |
| 编制日期 | 日期 |
| 文档状态 | 初版发布 / 评审中 / 定稿 |

### 标准章节结构

| 章节 | 内容要求 |
|------|----------|
| **一、接口总览** | 接口清单表格(#/名称/Method/Path/描述)+ 调用链路(ASCII 时序图) |
| **二、公共约定** | 协议、Base URL、鉴权方式、数据格式、公共响应结构、错误码表 |
| **三、接口详细定义** | 每个接口:调用场景 + 请求头 + 入参表 + 入参示例 + 出参表 + 出参示例 + 错误场景 |
| **四、调用时序总结** | 汇总表(步骤/调用方/接口/触发条件/备注) |

### 每个接口的标准子节

```
3.x  {METHOD} {path} — {接口名}
  ├─ 调用场景(ColorBox 高亮)
  ├─ 请求头(如需鉴权)
  ├─ 入参(表格:参数/类型/必填/说明)
  ├─ 入参示例(code_block)
  ├─ 出参(表格:参数/类型/说明)
  ├─ 出参示例 — 成功 / 失败 / 各状态(code_block)
  └─ 错误场景(表格:code/场景)
```

### 内容整理原则

- 从代码/需求中推导完整的入参出参,字段名用 camelCase
- 必填字段标记 ✅
- 嵌套对象用 `parent[].child` 格式展示
- 枚举值列出全部可选项及含义
- 错误码覆盖 400/401/404/422/500 等常见场景
- 示例 JSON 使用真实可读的模拟数据

## Step 2: 生成文档脚本

根据用户选择的格式,读取对应模板:

- **PDF**: 读取 [references/apidoc-pdf-template.py](references/apidoc-pdf-template.py)
- **Word**: 读取 [references/apidoc-word-template.py](references/apidoc-word-template.py)

基于模板生成定制化 Python 脚本,替换其中的内容数据。

### 设计规范

#### 颜色体系(商务蓝主题,PDF/Word 通用)

| 角色 | 色值 | 用途 |
|------|------|------|
| pri | `#1A365D` | 深蓝 - 主标题、表头、页眉线 |
| sec | `#2B6CB0` | 中蓝 - 章节标题(h2) |
| acc | `#3182CE` | 亮蓝 - 小节标题(h3)、强调 |
| lbg | `#EBF4FF` | 浅蓝背景 - 信息卡片、首列 |
| lgray | `#F7FAFC` | 极浅灰 - 交替行 |
| border | `#CBD5E0` | 边框灰 |
| txt | `#2D3748` | 正文色 |
| sub | `#718096` | 辅助文字、页眉页脚 |
| green | `#276749` | 成功/通过 |
| orange | `#C05621` | 警告/待确认 |
| red | `#C53030` | 紧急/重要 |

#### PDF 核心组件

模板提供以下 Flowable 组件:

- **`SectionBar(text, color)`** — 带色块的章节标题栏(白字 + 圆角深蓝底)
- **`InfoCard(rows)`** — 信息卡片(浅蓝底 + 边框,用于封面元信息)
- **`Divider()`** — 分隔线
- **`ColorBox(text, bg, bc)`** — 调用场景高亮框(浅蓝底 + 蓝色边框)
- **`make_table(headers, rows, col_widths)`** — 标准数据表格(深蓝表头 + 交替行)
- **`make_kv_table(rows)`** — 键值表格(左列浅蓝底粗体 + 右列正文)
- **`code_block(text)`** — 代码块(浅灰底 + 蓝色等宽字体)

#### Word 核心组件

模板提供以下函数:

- **`add_section_bar(doc, text, color)`** — 带色块的章节标题栏
- **`add_info_card(doc, rows)`** — 信息卡片
- **`add_divider(doc)`** — 分隔线
- **`add_color_box(doc, text)`** — 调用场景高亮框
- **`add_table(doc, headers, rows, col_widths_mm)`** — 标准数据表格
- **`add_kv_table(doc, rows)`** — 键值表格
- **`add_code_block(doc, text)`** — 代码块
- **`add_paragraph(doc, text, ...)`** — 段落(支持 `<b>` 标记)

#### 页眉页脚

根据实际项目名调整:
- 页眉左:`{项目名} · {文档类型}`
- 页眉右:`CONFIDENTIAL 机密`(可选)
- 页脚左:`{vendor_name}`(默认,用户可覆盖)
- 页脚右:`第 X 页`(PDF)/ `页码请在 Word 中查看`(Word)

## Step 3: 运行生成

输出目录:`output/{项目名称}-接口文档/`(每次新任务创建独立子文件夹)

**PDF:**
```bash
pip install reportlab
python generate_api_doc.py
```

**Word:**
```bash
pip install python-docx
python generate_api_doc_word.py
```

确认文档输出后告知用户文件路径。

## 注意事项

- PDF 字体注册使用 `register_fonts()` 函数,自动适配 Windows/macOS/Linux
- A4 纸张,左右上下边距 20mm
- 每个接口详细定义前使用 `PageBreak()`(PDF)或 `doc.add_page_break()`(Word)分页
- 表格列宽之和应为 ~166mm(PDF)/ 对应 Mm 值(Word),确保不溢出
- 代码块使用等宽字体:PDF 用 CF 蓝色 7.8pt,Word 用 Consolas 8.5pt
- Word 生成的 `.docx` 文件体积小、可继续编辑,适合需要后续调整的场景
- PDF 使用 `repeatRows=1` 让表头在跨页时重复显示

Files in this skill

  • SKILL.md6.2 KB
  • references/apidoc-pdf-template.py17.2 KB
  • references/apidoc-word-template.py16.9 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.