java开发,根据代码自动生成api接口文档工具,支持RESTful风格,今天咱们来学一下api-doc的生成html
做者:互联网编程。
https://www.jianshu.com/u/4ea...
http://lovepeng.gitee.io/apidoc前端
这个工具是一个典型的先后端分离开发的项目,想了解先后端分离开发的同窗也能够下载本项目学习。java
项目后端使用java代码,前端使用angular开发。Java开发时,使用注解把文档相关信息标注在类的方法上,经过工具自动扫描代码的注解,生成json数据,发给前端,前端angular解析生成页面git
本项目自带一个spring-boot框架为基础的demo(这里使用spring-boot作演示的demo仅仅是为了方便,本质上只要是java写的项目均可以用该工具),前端用angular作了一个比较漂亮的界面(最终前端界面都编译成了html,若是你前端不熟悉,能够跳过,不用管他),这里使用angular开发仅仅是我比较喜欢,你能够用任何你喜欢的的前端框架或者仅仅使用html写一个漂亮的界面就能够。github
后端项目开源地址:https://github.com/liepeng328/api-docspring
前端开源地址:https://github.com/liepeng328/api-doc-angular数据库
当成一个工具类用就能够了,下载本项目,拷贝包com.apidoc下的代码到你的系统,
而后拷贝前端html页面,在static.apidoc文件下,到你的资源文件下。便可使用
使用时,后台提供两个接口,目录文档接口和某个功能的详细接口编程
//生成目录接口 ApiDoc apiDoc = new GeneratorApiDoc() .setInfo(//设置文档基本信息 new ApiDocInfo() .setTitle("某莫系统后台管理文档") .setVersion("1.0") .setDescription("") ) .generator(packageName);//指定生成哪一个包下controller的文档 System.err.println(JsonUtil.toString(detail)); //详细功能接口 ApiDocAction detail = new GeneratorApiDoc() //设置数据库链接信息,可忽略 .setDriver(driver) .setUrl(url) .setUserName(userName) .setPassword(password) .setDataBaseName(dataBaseName) .getApiOfMethod(methodUUID); System.err.println(JsonUtil.toString(detail));
一个详细例子以下代码,这里是springboot/springmvc的controller示例(展现两个文档,前端接口和后台接口)参考代码这个类 UserController.javajson
共有6个注解,标注出整个文档信息(我为何讲那么详细,那么啰嗦,并且我没有把这个项目打成jar包直接给别人使用,就是由于文档生成最大多是须要特殊定制,确保你拿到该代码能够个性化定制功能,随意修改)。后端
Api:写在类上,代表一个功能模块。
属性:
ApiAction: 写在方法上,代表一个功能点
属性:
ApiReqParams: 请求参数
属性:
- header 在请求头
- url 在url后拼接
- form 表单数据
- json json格式
- value : class类,增长该类可自动读取数据库信息,避免写多个属性
- remove: 配合value使用,去除class类中无用的属性,好比id
- dataType: 数据类型(字符串string,数字number,文件file,日期date,对象object,数组array,布尔类型boolean)
- descrption:描述
- defaultValue: 默认值
- required:是否必须
- object:从属于哪一个对象(由于请求参数或者响应参数多是对象中嵌套对象的,这里为了更好的表示这种层级关系,增长两个属性,object和belongTo,构建一个树结构,表示对象之间无限、互相嵌套)
- belognTo : 对应object 默认值为"0",字符串0
ApiRespParams: 响应参数
属性:
配置jdk8以上版本,下载代码,运行ApidocApplication类main方法便可。
而后访问地址 http://localhost:8080/index.html
该项目为maven项目,引用工具请查看 pom.xml
感谢 spring-boot
感谢@路晓磊 的工具类hutool https://gitee.com/loolly/hutool