Smart-Doc 的简单使用

1. 简介

smart-doc是一款支持JAVA REST API、JAVA WebSocket、Apache Dubbo RPC和gRPC接口文档生成的工具。

smart-doc率先提出了基于Java泛型定义来推导接口文档的概念。它完全依赖于接口的源代码进行分析和生成文档,无需在业务代码中添加任何注解。 只需按照JavaDoc的标准编写注释,smart-doc就能够帮助您生成简洁明了的MarkdownHTML5Postman Collection 2.0+OpenAPI 3.0+ 格式的文档。

Smart-Doc无侵入式的API接口文档生成器地址:smart-doc-group.github.io/zh/

2. 引入

这里我主要基于IDEA进行使用。

我们这个项目是SpringBoot多模块项目,下面介绍下引入过程。

根目录的build.gradle文件上添加

groovy 复制代码
plugins {
    id 'com.ly.smart-doc' version '3.0.0'
}

在需要引入smart-doc的模块的build.gradle文件上添加

groovy 复制代码
apply plugin: 'com.ly.smart-doc'

在需要引入smart-doc的模块的resources目录下添加smart-doc.json文件

json 复制代码
{
  "projectName": "XXX平台对内接口文档 - vX.X.X",
  "allInOne": true,
  "outPath": "D:\doc\management",
  "coverOld": true,
  "packageFilters": "com.xxx.xxx.management.controller.*",
  "showAuthor": false,
  "inlineEnum": true,
  "allInOneDocFileName": "index.html",
  "requestExample": "true",
  "responseExample": "true",
  "revisionLogs": [
    {
      "version": "v1.0.0",
      "revisionTime": "2026-06-01",
      "status": "已发布",
      "author": "张三",
      "remarks": "项目初始化版本"
    },
    {
      "version": "v1.1.0",
      "revisionTime": "2026-06-18",
      "status": "已发布",
      "author": "李四",
      "remarks": "XXXXXXXX"
    }
  ],
  "errorCodeDictionaries": [
    {
      "enumClassName": "com.xxx.xxx.common.data.error.CommonErrorCode",
      "codeField": "code",
      "descField": "message"
    },
    {
      "enumClassName": "com.xxx.xxx.management.error.ManagementErrorCode",
      "codeField": "code",
      "descField": "message"
    }
  ],
  "dataDictionaries": [
    {
      "enumClassName": "com.xxx.xxx.common.data.constant.AccountStatusEnum",
      "codeField": "code",
      "descField": "zhDesc"
    },
    {
      "enumClassName": "com.xxx.xxx.common.data.constant.AllocateFlagEnum",
      "codeField": "code",
      "descField": "zhDesc"
    },
    {
      "enumClassName": "com.xxx.xxx.common.data.constant.AsyncOperationEnum",
      "codeField": "code",
      "descField": "zhDesc"
    }
  ],
  "responseBodyAdvice": {
    "className": "com.xxx.xxx.common.web.result.Result"
  }
}

引入后,IDEA右上角Gradle刷新后会在对应模块目录看到下面的菜单:

2.1. 专用工具集成

这些选项生成的文档格式,是为了方便与特定的开发、测试工具联动。

  • smartDocOpenApi :生成 OpenAPI 3.0+ 格式的文档。这是一种标准的 API 描述规范,生成后可以导入到 Swagger UI、YApi 等支持该规范的工具中展示和调试。
  • smartDocPostman :生成 Postman Collection 2.0+ 文件。可以将这个 JSON 文件直接导入 Postman,从而快速生成接口请求,方便进行接口调试。

2.2. 基础文档格式生成

这些选项用于生成不同格式的离线文档文件,方便本地阅读或分享。

  • smartDocRestAdoc :为 RESTful API 生成 AsciiDoc 格式文档。
  • smartDocRestHtml :为 RESTful API 生成美观的 HTML 格式文档。
  • smartDocRestMarkdown :为 RESTful API 生成 Markdown 格式文档。
  • smartDocRpcAdoc :为 RPC 接口 (如 Apache Dubbo)生成 AsciiDoc 格式文档。
  • smartDocRpcHtml :为 RPC 接口 (如 Apache Dubbo) 生成美观的 HTML 格式文档。
  • smartDocRpcMarkdown :为 RPC 接口 (如 Apache Dubbo)生成 Markdown 格式文档。

2.3. 文档管理平台推送

这些选项用于将文档自动推送到在线的文档管理平台,实现团队协作和集中管理。

  • tornaRest :将 RESTful API 文档自动推送Torna 企业级接口文档管理平台。
  • tornaRpc :将 RPC 接口 文档自动推送Torna 平台。

Torna 是一个功能强大的开源平台,支持文档的集中管理、版本控制和团队协作。与 Smart-Doc 配合,可以实现"代码即文档"的理念。

2.4. 特殊说明

  • javadoc :这个选项代表 Smart-Doc 的工作基础,即解析你写的标准 Javadoc 注释。它本身不是一个生成目标,而是 Smart-Doc 分析源码、提取信息的核心方式。

3. 使用

注意在代码中规范书写注释。

文档生成步骤:

  • 执行 smartDocRestHtml 命令
  • 在指定位置会生成 HTML 接口文件。
  • 将 HTML 文件转换为 PDF 文件。

HTML 文件转换为 PDF 文件的方式:在浏览器中打开HTML文件或网页 → 按 Ctrl+P(Windows)或 Cmd+P(Mac)或直接找到打印 → 选择打印机为"另存为PDF" → 保存即可。

上面是生成了PDF格式文档,方便发给客户。

目前体验下来,感觉HTML格式的会更美观。

相关推荐
喵个咪1 小时前
技术复盘:基于 go-wind-cms 的官网+商城双业务渐进拆分实战
后端·架构·go
ZengLiangYi2 小时前
批量导入 1000 条对话的性能优化实战
javascript·后端·架构
juejin9982 小时前
Claude Code 环境跑通:第一次有效对话
后端
wei_shuo2 小时前
KES 数据库迁移实战:从 Oracle/MySQL 到 KingbaseES 的平滑过渡指南
后端
长栎2 小时前
Lombok @Builder 越用越爽,直到生产上构造函数的参数顺序全乱了
后端
长栎2 小时前
Spring 的 prototype scope 你用对了吗?原型模式的三个正确打开方式
后端
XovH2 小时前
MySQL 系列:第13篇 索引,不止是目录
后端
云技纵横2 小时前
Gap Lock 死锁实战:5 秒在本地复现 MySQL 间隙锁死锁
后端·mysql
XovH2 小时前
MySQL 系列:第12篇 用户、权限与安全基础
后端