java开发,根据代码自动生成api接口文档工具,支持RESTful风格,今天我们来学一下api-doc的生成

预览

在线预览地址

开发原理

这个工具是一个典型的前后端分离开发的项目,想了解前后端分离开发的同学也可以下载本项目学习。

项目后端使用java代码,前端使用angular开发。Java开发时,使用注解把文档相关信息标注在类的方法上,通过工具自动扫描代码的注解,生成json数据,发给前端,前端angular解析生成页面

本项目自带一个spring-boot框架为基础的demo(这里使用spring-boot做演示的demo仅仅是为了方便,本质上只要是java写的项目都可以用该工具),前端用angular做了一个比较漂亮的界面(最终前端界面都编译成了html,如果你前端不熟悉,可以跳过,不用管他),这里使用angular开发仅仅是我比较喜欢,你可以用任何你喜欢的的前端框架或者仅仅使用html写一个漂亮的界面就可以。

快速启动

当成一个工具类用就可以了,下载本项目,拷贝包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.java

注解详细介绍

共有6个注解,标注出整个文档信息(我为什么讲那么详细,那么啰嗦,而且我没有把这个项目打成jar包直接给别人使用,就是因为文档生成最大可能是需要特殊定制,确保你拿到该代码可以个性化定制功能,随意修改)。

Api 标注文档的功能模块

ApiAction 标注一个功能

ApiReqAparams 请求参数

ApiResqAparams 响应参数

ApiParam 参数,用以组成请求参数和响应参数

Table 用以标注实体类(比如bean)和数据库表的关系,自动从数据库读取相关信息,不用写大量的 ApiReqAparams和ApiResqAparams

详细介绍如下

Api:写在类上,表明一个功能模块。 属性:

name 模块名称

mapping url映射

ApiAction: 写在方法上,表明一个功能点 属性:

name 方法的功能名称

mapping url映射

description 描述

method 请求方式(get,post,put,delete)

ApiReqParams: 请求参数 属性:

type:参数类型

header 在请求头

url 在url后拼接

form 表单数据

json json格式

ApiParam :参数列表

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: 响应参数 属性:

ApiParam: 该参数等同于请求参数中的ApiParam,参考如上描述

下载本项目并运行

配置jdk8以上版本,下载代码,运行ApidocApplication类main方法即可。 然后访问地址 http://localhost:8080/index.html

感谢列表

该项目为maven项目,引用工具请查看 pom.xml 感谢 spring-boot 感谢@路晓磊 的工具类hutool https://gitee.com/loolly/hutool

java如何生成api文档_api文档自动生成工具相关推荐

  1. JAVA 短信API接口调用 附 文档 Demo

    JAVA 短信API接口调用 附 文档 Demo 1.请求地址 http://host:port/sms 请求方式可以 POST 和 GET方式,建议采用POST方式 2.参数说明 参数需要 URLE ...

  2. 用java写ods系统_基于数据库的代码自动生成工具,生成JavaBean、生成数据库文档、生成前后端代码等(TableGo v7.0.0版)...

    TableGo是基于数据库的代码自动生成工具,低代码编程技术的实现,可以零代码自动生成SpringBoot项目工程.生成JavaBean.生成前后端分离的CRUD代码.生成MyBaits的Mapper ...

  3. 使用sphinx快速为你python注释生成API(html)文档

    sphinx简介 sphinx是一种基于Python的文档工具,它可以令人轻松的撰写出清晰且优美的文档,由Georg Brandl在BSD许可证下开发.新版的Python3文档就是由sphinx生成的 ...

  4. 【日常问题】API文档的.chm后缀自动生成.chw后缀文件

    CHM(Compiled Help Manual)叫已编译的帮助文件. CHW文件是索引文件,用于提高 msdn 查阅器的索引.关键字和全文搜索性能,能够加快chm文件的索引. 一开始有强迫症,删了好 ...

  5. python新建word文档_使用Python 自动生成 Word 文档的教程

    当然要用第三方库啦 :) 使用以下命令安装: pip install python-docx 使用该库的基本步骤为: 1.建立一个文档对象(可自动使用默认模板建立,也可以使用已有文件). 2.设置文档 ...

  6. python怎么自动生成文档_用 Python 自动生成 Word 文档

    当然要用第三方库啦 :) 使用以下命令安装: pip install  python-docx 使用该库的基本步骤为: 1.建立一个文档对象(可自动使用默认模板建立,也可以使用已有文件). 2.设置文 ...

  7. java插件开发_编写一个IDEA插件之:自动生成Java代码

    我很喜欢IDEA的一键自动生成代码功能,例如自动生成构造方法.字段的Get/Set方法.ToString方法等等,除此之外,也有一些插件提供自动生成代码的功能,例如我们所熟悉的GsonFormat插件 ...

  8. python的api库_python 利用toapi库自动生成api

    在学习做接口测试自动化的时候,我们往往会自己动手写一些简单的API,比如写一个简单的TODO API之类. 不过自己写API的时候经常需要造一些假数据,以及处理分页逻辑,开始的时候还觉得比较有意思,但 ...

  9. java编程猜数字大小 (要求利用随机数自动生成一个0--100内的随机数字)

    java编程猜数字(要求利用随机数自动生成一个0–100内的随机数字) public static void main(String[] args) {int num=(int)(Math.rando ...

最新文章

  1. 在CISCO路由器上实现CHAP认证
  2. 自定义InputFormat案例
  3. python __reduce__魔法方法_关于python魔术方法payload:.__class__.__mro__[2].__subclasses__()[40](/etc/passwd...
  4. Notification详解
  5. 从零开始学习jQuery (十) jQueryUI常用功能实战
  6. Java常用集合体系以及相互区别
  7. Mac 安装Fiddler 抓包工具
  8. Java 运行时数据区域
  9. [HNOI2010]公交线路
  10. C编程实践:简单的通讯录
  11. Extjs 数据代理
  12. 教你如何将二进制文件导入到数据库
  13. yum 安装、 rpm安装、 源码编译安装
  14. echarts图广东和福建地图上城市坐标
  15. 量产HLW8032串口通讯芯片的三相电参数采集系统项目资料
  16. 第一部分 web前端课程
  17. 牛客练习赛53 老瞎眼 pk 小鲜肉[思维+离线+线段树]
  18. 【源码】Spring AOP 9 Advised
  19. 爱因斯坦:三篇著名演讲
  20. 如何将微博全景图下载到手机发布至QQ

热门文章

  1. linux中安装mysql无法启动不了_Linux中安装mysql之后 mysql服务不能启动是怎么回事?...
  2. python从后面删除重复项_如何从Python列表中删除重复项
  3. 计算机网络——(5)网络操作系统
  4. 3年级计算机课程安排,人教版三年级信息技术教学计划
  5. 计算机专业开题报告这么写,有效有用还能过
  6. hive 修改cluster by算法_疯狂Hive之DML操作(四)
  7. 【嵌入式08】STM32F103C8T6寄存器方式借助面包板点亮LED流水灯详解
  8. FBT熔融拉锥大芯径多模光纤耦合器简介
  9. 增量式(相对式)编码器与绝对式编码器工作原理
  10. 图像处理中的 亮度, 灰度, 对比度等概念