Java文档自动生成
java-api-doc
励志做java届最好的文档生成工具,自动解析代码生成api接口文档,前后台分离开发的福音,零代码入侵,零注释入侵
https://github.com/liupeng328/java-api-doc/tree/master?tdsourcetag=s_pctim_aiomsg
https://gitee.com/lovepeng/apidoc2
解决的痛点
通常的文档生成工具,都需要开发人员编写注解或注释,代码入侵太强,而且费事,我希望工具自动解析代码,然后根据代码生成文档,如果有注释就自动扫描注释,没有就以代码为准,生成的文档如果有不合理的地方,可以在页面进行修改,利用web页面的表单编辑修改要比在代码里处理方便直观。
页面布局
如下图(图片拼接左侧菜单可能模糊或重影,凑合看):
左侧为菜单,菜单分为两级,一级表示模块,二级表示接口信息,一级菜单就是你定义的模块名称,二级菜单是对外接口的方法名,如果你的方法上有注释,这里会自动解析方法的注释作为二级菜单。菜单拖拽可以排序。
右侧为接口详细信息,主要包括:模拟测试功能,接口详细信息说明,请求参数说明,响应参数说明,参数的详细信息也是默认解析代码,如有注释优先展示注释,支持对象的泛型,多维数组,自嵌套,互相嵌套,并根据参数信息生成一个演示的例子表明接口的使用方式
页面操作
- 左侧二级菜单可以双击修改,失去焦点时自动保存
- 左侧一级,二级菜单可以拖拽排序
- 所有带 “编辑”按钮的地方都可以编辑保存,textarea编辑时可以带回车换行,自动记录你的文本格式
- 请求参数和响应参数,本身是一个树结构,所有编辑的时候跟普通的编辑树一样操做,包括添加一级数据,添加子数据,修改,删除,保存等等,鼠标移入会有提示,如下图
5.如果需要给接口提供默认值,修改参数的默认值后,会自动重构json参数,告诉你接口怎么使用,清晰明了
- 工具提供自动化测试,支持默认数据填充,前后台都抛弃PostMan等第三方测试工具吧
代码使用
- 引入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>
- 修改配置文件
#是否开启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
- 增加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(); } }
- 在你的controller类上增加注解
@Api("这里写模块名称")
,这里一个@Api对应页面的一个一级菜单,即模块,模块可以由多个类组成,只需设置每个类的模块名称一样,程序会自动把模块名称一样的class组装成同一模块。 - 浏览器访问地址
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", };
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
JAVA实现调用微信js-sdk扫一扫
喜欢的朋友可以关注下。 已经很久没有给大家分享一片技术文章了,今天抽了点时间来,给大家说一说如何调用微信提供的扫一扫接口。 前提: 需要申请一个公众号:申请公众号需要的资料我就不说了,去申请微信会提示需要哪些。 准备appid(公众号的id) AppSecret (公众号的密钥) 正文: 首先,我们先来简单了解一下流程,详细的微信文档有说明。 获取Token→根据token获取Ticket→根据ticket签名→反会参数给前端→前端调起扫一扫接口 下面直接上代码 1.获取token /** * Description: 获取微信公众号token<BR> * * @author dsn * @date 2018年9月21日 上午9:53:26 * @param appid * @param secret * @return * @version 1.0 */ public static String getAccessToken(String appid, String secret) { String token = ""; String token_url = "http...
- 下一篇
调查3.9万名国外程序员制作出来的开发者技能报告
这是一份样本数超过 3.9 万人的调查报告,参与调查的开发者遍及全球。除了四分之一的开发者在学会开车前先学会编程之外,还有这些调查结果等你发现。对照这份调查报告,看看你跟世界上其他国家地区开发者之间的异与同各是什么? 01 四分之一开发者在学会开车前先学习编程 编程起步不在乎早晚,在 39000 多名开发者当中,有四分之一在 16 岁之前就开始接触编程。 而在 26 岁之后才开始接触编程的开发者当中,有 36% 已经成为高级或更高级别的开发者,可见他们的职业生涯发展得很快。 02 个人电脑的发展为 70 年代的孩子提供了契机 70 年代的孩子如果想要看到创新科技,他们必须自己动手去创建,因为他们别无选择,那个时候没有那么多资源教他们如何开发软件。在 45 岁至 54 岁的开发者当中,几乎有一半(47%)在 16 岁之前就开始编程。而在 18 岁至 24 岁的开发者当中,在 16 岁之前就开始编程的要少得多(只有 20%)。 45 岁至 54 岁的开发者也是第一波接触早期个人电脑的人,比如 Acorn Archimedes、TRS-80、Commodore 64 和 Apple 2。因为...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- CentOS关闭SELinux安全模块
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS8编译安装MySQL8.0.19
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- CentOS8安装MyCat,轻松搞定数据库的读写分离、垂直分库、水平分库
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Red5直播服务器,属于Java语言的直播服务器