ApiFormatMd 轻量级Java接口文档生成工具
特点
- 完全基于本地代码执行 Java代码无需引用额外依赖
- 生成MarkDown格式文档 可使用ShowDoc生成在线文档
配置项
main.py
- 作者 author = ‘江火似流萤’ (对应Md文档作者信息)
- 载入类根目录 root_path = r"/Users/xxx" (指定Java项目根目录,程序以此为起点遍历Java文件)
- 生成md文件目录 write_path = r"/Users/xxx/Desktop" (Md文档写入路径)
param.txt
- 参数 param.txt (Controller层接口信息 具体参考文件内容)
依赖
- python3
如何使用
方式一 生成文件到本地
- 本地安装python3环境
- clone本项目到本地
- 修改main.py ‘author’ ‘root_path’ 'write_path’配置(首次使用配置)
- API信息写入 param.txt 文件
- 执行
python3 main.py
终端输出 ‘success’ 则执行成功
方式二 生成文档到showDoc
- 基于方式一的配置 执行
python3 request_show_doc.py
- 打开 https://www.showdoc.com.cn/2040347871634336/ 查看文档
- 如果报错
ModuleNotFoundError: No module named 'requests'
需要导入request包执行pip3 install requests
方式三 写入utools插件一键生成文档到showDoc
- utools 安装
一步到位
插件 - 创建自己的插件
- 复制接口到utools生成文档
- 复制接口
- 粘贴到utools
- 成功提示(文档地址已复制到粘贴板)
- 浏览器打开文档
点击gitee查看源码
例子
java接口
查看代码 @RequestMapping(value = "/v1/test/{userId}", method = RequestMethod.POST)
public JsonResult<List<Map<InvoiceVO.Extend, InvoiceVO>>> test(
@PathVariable(value = "userId") int userId,
@RequestParam(value = "roleCode", required = true) String roleCode,
@RequestBody QuoteStrategyRule quoteStrategyRule) {
return new JsonResult<>();
}
QuoteStrategyRule(参数)
package com.peng.model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import java.util.Date;
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
@TableName("quote_strategy_rule")
public class QuoteStrategyRule implements Serializable {
@TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
* 所属策略ID
*/
private Long quoteStrategyId;
/**
* 所属渠道ID
*/
private Long resellerChannelId;
/**
* 所属分类 1 生活服务;2 酒店业务;3 飞机票价
*/
private Byte quoteStrategyCategory;
/**
* 引用ID,类型为1是0; 类型为2是大类枚举值; 类型为3是子类枚举值;类型为4商品ID;类型为5是规格ID;类型为6是规格ID
*/
private Byte type;
/**
* 类型为1是【分类名称】; 类型为2是【分类名称>大类名称】;
* 类型为3是【分类名称>大类名称>子类名称】;
* 类型为4是【分类名称>商品id】;类型为5是【分类名称>商品id>规格id】;
* 类型为6是【分类名称>商品id>规格id>开始时间~结束时间】
*/
private String name;