# generate-delivery-doc **Repository Path**: nn200433/generate-delivery-doc ## Basic Information - **Project Name**: generate-delivery-doc - **Description**: 生成接口(swagger)、数据库 word 文档 - **Primary Language**: Java - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 9 - **Forks**: 1 - **Created**: 2022-04-16 - **Last Updated**: 2024-07-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # generate-delivery-doc ## 介绍 生成接口(swagger)、数据库 word 文档。 注意:该项目仅测试过使用 `knife4j-openapi2-spring-boot-starter` 的项目!!! ## 目录结构 ``` generate-delivery-doc ├── Dockerfile ├── pom.xml └── src └── main ├── java │ └── cn │ └── nn200433 │ ├── common │ │ └── BaiDuFy.java 百度翻译工具类 │ ├── controller │ │ └── IndexController.java 控制层(页面 / 接口) │ ├── db 数据库文档生成 │ │ ├── AbstractProcess.java │ │ ├── DataModelProcess.java │ │ ├── DbToWord.java │ │ └── entity │ │ └── DbParam.java │ ├── DocApplication.java 项目启动器 │ └── swagger 接口文档生成 │ ├── entity │ │ ├── Endpoint.java │ │ ├── Parameter.java │ │ ├── Resource.java │ │ ├── SwaggerData.java │ │ └── SwaggerParam.java │ └── SwaggerToWord.java └── resources ├── application.yml SpringBoot 配置文件 ├── db 数据库文档模板 │ └── tpl_db.docx ├── logback-spring.xml 输出日志配置文件 ├── swagger 接口文档模板 │ └── tpl_swagger.docx └── templates UI界面 └── index.html ``` ## 快速入门 1. 下载项目 ```bash git clone https://gitee.com/nn200433/generate-delivery-doc.git ``` 2. 编译打包 ```bash mvn clean package -Dmaven.test.skip=true ``` 3. 启动项目 ```bash # 定位到编译好的文件位置 cd /generate-delivery-doc/target # 启动项目 java -jar generate-delivery-doc.jar ``` 4. 本地访问 `http://127.0.0.1:8080` ## Docker 部署 ```bash # 拉取镜像 docker pull ccr.ccs.tencentyun.com/nn200433/qtmd-doc:latest # 运行项目 docker run -itd -p 8081:9090 -e DOMAIN=http://127.0.0.1:8081/ --name=qtmd-doc --restart=unless-stopped ccr.ccs.tencentyun.com/nn200433/qtmd-doc:latest ``` ```yaml version: '3' services: doc: image: ccr.ccs.tencentyun.com/nn200433/qtmd-doc:latest container_name: qtmd-doc ports: - 8081:9090 restart: unless-stopped #volumes: # - ./tpl:/home/tpl environment: - DOMAIN=http://192.168.0.88:8081 #- SWAGGER_TPL=/home/tpl/tpl_swagger.docx #- DB_TPL=/home/tpl/tpl_db.docx ``` 参数: | 参数 | 说明 | | --- |------------------------------------------------------------------------------------------------| | DOMAIN | 实际访问的地址,默认自动识别。自动识别可能会识别为容器内部 IP ,导致样式无法获取。 | | SWAGGER_TPL | Swagger docx 模板地址。如:`/home/tpl/swagger.docx` ,未设置则获取内置模板 `/resources/swagger/tpl_swagger.docx` | | DB_TPL | DB docx 模板地址。如:`/home/tpl/db.docx`,未设置则获取内置模板 `/resources/db/tpl_db.docx` | ## 截图 ![界面 - swagger](doc/snipaste20220416_145904.jpg) ![生成 - swagger](doc/swagger.gif) ![文档 - swagger](doc/snipaste20220416_153104.jpg) ![界面 - db](doc/snipaste20220416_145942.jpg) ![生成 - db](doc/db.gif) ![文档 - db](doc/snipaste20220416_153739.jpg) ## 常见问题 1. 导出的数据库文档中文乱码 解决:在数据库连接上加上编码,以 MySQL 举例,请加上 `?characterEncoding=UTF-8` 。完整连接地址为 `jdbc:mysql://127.0.0.1:3306/test?characterEncoding=UTF-8` 。 ## 特别鸣谢 > 感谢以下的项目,排名不分先后 * [Hutool](https://hutool.cn) Hutool是一个Java工具包,让Java语言也可以“甜甜的”。 * [screw](https://gitee.com/leshalv/screw) 简洁好用的数据库表结构文档工具,支持MySQL/MariaDB/SqlServer/Oracle/PostgreSQL/TIDB/CacheDB 数据库。 * [Layui](https://layui.dev) Layui 是一套开源免费的 Web UI 组件库,采用自身轻量级模块化规范,遵循原生态的 HTML/CSS/JavaScript 开发模式,极易上手,拿来即用。其风格简约轻盈,而内在雅致丰盈,甚至包括文档在内的每一处细节都经过精心雕琢,非常适合网页界面的快速构建。Layui 区别于一众主流的前端框架,却并非逆道而行,而是信奉返璞归真之道。确切地说,它更多是面向于追求简单的务实主义者,即无需涉足各类构建工具,只需面向浏览器本身,便可将页面所需呈现的元素与交互信手拈来。