开发者社区> 互联网编程> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

Java文档自动生成

简介: java-api-doc 励志做java届最好的文档生成工具,自动解析代码生成api接口文档,前后台分离开发的福音,零代码入侵,零注释入侵https://github.
+关注继续查看

java-api-doc

励志做java届最好的文档生成工具,自动解析代码生成api接口文档,前后台分离开发的福音,零代码入侵,零注释入侵
https://github.com/liupeng328/java-api-doc/tree/master?tdsourcetag=s_pctim_aiomsg
https://gitee.com/lovepeng/apidoc2

解决的痛点

通常的文档生成工具,都需要开发人员编写注解或注释,代码入侵太强,而且费事,我希望工具自动解析代码,然后根据代码生成文档,如果有注释就自动扫描注释,没有就以代码为准,生成的文档如果有不合理的地方,可以在页面进行修改,利用web页面的表单编辑修改要比在代码里处理方便直观。

页面布局

如下图(图片拼接左侧菜单可能模糊或重影,凑合看):


img_77498e01174b4e91471c205368e6bb03.png
  1. 左侧为菜单,菜单分为两级,一级表示模块,二级表示接口信息,一级菜单就是你定义的模块名称,二级菜单是对外接口的方法名,如果你的方法上有注释,这里会自动解析方法的注释作为二级菜单。菜单拖拽可以排序。

  2. 右侧为接口详细信息,主要包括:模拟测试功能,接口详细信息说明,请求参数说明,响应参数说明,参数的详细信息也是默认解析代码,如有注释优先展示注释,支持对象的泛型,多维数组,自嵌套,互相嵌套,并根据参数信息生成一个演示的例子表明接口的使用方式

页面操作

  1. 左侧二级菜单可以双击修改,失去焦点时自动保存
img_53f67b6d5e8d1663a28419f0019afd06.png
image.png
  1. 左侧一级,二级菜单可以拖拽排序
img_027651b07ddab14b4d386cbcd3cd1b9f.png
  1. 所有带 “编辑”按钮的地方都可以编辑保存,textarea编辑时可以带回车换行,自动记录你的文本格式
img_bd527f01908bd07a814ac892f72dbc14.png

img_0ef57389474f58bd5109b23ed15fc0a0.png
  1. 请求参数和响应参数,本身是一个树结构,所有编辑的时候跟普通的编辑树一样操做,包括添加一级数据,添加子数据,修改,删除,保存等等,鼠标移入会有提示,如下图
img_f33da15c1b0790e3d98de42889ce6d65.png

5.如果需要给接口提供默认值,修改参数的默认值后,会自动重构json参数,告诉你接口怎么使用,清晰明了

img_ae80b3adeca687e64dffc67c5e2cb317.png
image.png
  1. 工具提供自动化测试,支持默认数据填充,前后台都抛弃PostMan等第三方测试工具吧
img_5e63a8da3f1328ec902fddea4301e6ae.png

代码使用

  1. 引入jar包(暂未上传maven,近期上传maven)
       <!--Maven jar包引入方式-->
        <dependency>
            <groupId>com.apidoc</groupId>
            <artifactId>apidoc</artifactId>
            <version>1.0.0</version>
            <scope>system</scope>
            <systemPath>${project.basedir}/src/main/resources/lib/apidoc-1.0.0.jar</systemPath>
        </dependency>
    </dependencies>
  1. 修改配置文件
#是否开启apidoc
apidoc=true

# datasource 数据源配置,目前仅支持mysql,如果需要其他数据库,请自行修改com.apidoc.dao数据库操作层的sql,或者联系我修改(需要付费)
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/apidoc?useUnicode=true&zeroDateTimeBehavior=convertToNull&autoReconnect=true&characterEncoding=UTF-8&characterSetResults=UTF-8&allowMultiQueries=true&&useSSL=false
spring.datasource.username=root
spring.datasource.password=root
  1. 增加springboot快速配置类
/**
 * 配置类
 * 让springboot自动扫描并管理apidoc工具下的所有class
 */
@Configuration
@EnableTransactionManagement//启动事务
@ComponentScan("com.apidoc")//扫描组件类
@MapperScan("com.apidoc.dao")//扫描数据库操作层的类
@EntityScan("com.apidoc.entity")//扫描实体类
public class ApiDocConfig {
    @Bean
    public ApiDocService generator() {
        //所有的常量都在Const类下,需要修改常量的在这里配置即可
        //配置代码的绝对路径,方便扫描代码的注释,因为注释编译之后就被jvm剔除了,只能扫描源码,不配置则不扫描注释
        //默认路径为{项目路径}+src/main/java
        Const.codePath = Const.projectPath + "apidoc-demo" + File.separator + "src" + File.separator + "main" + File.separator + "java" + File.separator;
        return new ApiDocService();
    }
}

  1. 在你的controller类上增加注解@Api("这里写模块名称"),这里一个@Api对应页面的一个一级菜单,即模块,模块可以由多个类组成,只需设置每个类的模块名称一样,程序会自动把模块名称一样的class组装成同一模块。
  2. 浏览器访问地址http://localhost:8080/apidoc/index.html?packageName=com.demo即可。如果一个项目有多个文档,比如前端页面一个文档,后台管理一个文档等等,可以用java的包区分。一个包代表一个文档,不同的文档使用不同的包即可。即url后的参数:packageName=你的包名

特别说明&&高级模式

目前仅支持SpringMVC/SpringBoot+Mybatis+MySQL技术架构,如果您使用其他技术,可以下载我的源码稍作修改,或联系我修改(需要付费)

工具是标准的前后台分离开发架构,后台为MVC开发模式,如果你的技术跟我使用的不一样选择性替换相应的代码层即可。

  • 路由控制层:替换这一个类即可com.apidoc.controller.ApiDocController
  • 数据库操作层:修改这个包的sql即可com.apidoc.dao
  • 页面中所有的常量都可以配置,包括路由等等,具体见常量类com.apidoc.common.Const
  • 嫌弃前端页面丑陋:apidoc/front这个路径下是我的所有前端代码,我才用的是最新版的angualr做的,你可以选择你喜欢的任何前端技术重构自己的页面,然后对接后台接口即可。总共如下接口,采用标准的RESTful风格
//api接口
export const apis={
  isOpenApiDoc:"/apidoc/isOpenApiDoc",
  info:"/apidoc/info",
  modules:"/apidoc/modules",
  actions:"/apidoc/actions",
  detail:"/apidoc/detail",
  updateInfo: "/apidoc/updateInfo",
  updateAction: "/apidoc/updateAction",
  updateActionDescription: "/apidoc/updateActionDescription",
  updateDetail: "/apidoc/updateDetail",
  updateModulesSort: "/apidoc/updateModulesSort",
  updateActionsSort: "/apidoc/updateActionsSort",
  addParam:"/apidoc/addParam",
  updateParam:"/apidoc/updateParam",
  deleteParam:"/apidoc/deleteParam",
};

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Java单元测试之IDEA自动生成测试类
每次对类的方法进行测试,都是手动创建一个Test测试类,然后编写同名的方法,每次这样都会很繁琐,IDEA开发工具提供了自动生成测试类的插件JUnitGenerator,接下来介绍该插件的安装与使用。
0 0
编写Java程序,模拟网上商城购物,当用户选好物品提交订单时,每笔订单会自动生成一个唯一的订单编号。
编写Java程序,模拟网上商城购物,当用户选好物品提交订单时,每笔订单会自动生成一个唯一的订单编号。
0 0
【Groovy】Groovy 方法调用 ( Java 类成员及 setter 和 getter 方法设置 | Groovy 类自动生成成员的 getter 和 setter 方法 )
【Groovy】Groovy 方法调用 ( Java 类成员及 setter 和 getter 方法设置 | Groovy 类自动生成成员的 getter 和 setter 方法 )
0 0
告别加班/解放双手提高单测覆盖率之Java 自动生成单测代码神器推荐
很多公司对分支单测覆盖率会有一定的要求,比如 单测覆盖率要达到 60% 或者 80%才可以发布。 有时候工期相对紧张,就优先开发功能,测试功能,然后再去补单元测试。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/e9e8ea7d35ca4830bce7929774471207.jpg) 但是编写单元测试又比较浪费时间,有没有能够很大程度上自动化生成单元测试的插件,自己简单改改即可呢? 自己尝试在 Idea 插件库里搜索相关插件并去尝试使用,发现 `TestMe` 还可以。后面和其他同学交流,谎伴 同学推荐他一直在用的 `Squaretest`,我试用
0 0
自己开发一个Java ORM框架(4)-数据库自动生成Java实体类
本文目录 1. 导入jar包 2. 编写配置文件 3. 调用 panda.orm.database.EntityGenerater类的静态方法自动生成实体类代码文件
0 0
java工程自动生成的模板实现
背景  九月份的最后一天抽空跟公司的java大神聊了会天,发现每天跟大神们聊天总能收获很多思路,想想接受了大神那么多的指点,就把他的一点小技巧分享出来。  这次介绍的是JAVA 工程自动通过工具生成标准工程,按照指定步骤生成整个项目工程,解决每次新建项目工程相互拷贝的问题,我也是在用了一次以后发现这个功能很好,就去找原作者请教了一下,因而有了这篇文章用以致敬原作者。
981 0
解析Java代码,自动生成文档工具使用说明
页面布局 左侧为菜单,菜单分为两级,一级表示模块,二级表示接口信息 右侧为接口详细信息,主要包括:模拟测试功能,接口详细信息说明,请求参数说明,响应参数说明,自动一个演示的例子表明接口的使用方式 如下图(图片拼接左侧菜单可能模糊或重影,凑合看): ...
1792 0
Java实现单词计数MapReduce
本文分享实现单词计数MapReduce的方法
0 0
+关注
互联网编程
讲个笑话,我有50年的Java编程经验,哈哈哈
文章
问答
文章排行榜
最热
最新
相关电子书
更多
JAVA 应用排查全景图
立即下载
Java工程师必读手册
立即下载
Java应用提速(速度与激情)
立即下载