代码拉取完成,页面将自动刷新
励志做java届最好的文档生成工具,自动解析代码生成api接口文档,前后台分离开发的福音,零代码入侵,零注释入侵
通常的文档生成工具,都需要开发人员编写注解或注释,代码入侵太强,而且费事,我希望工具自动解析代码,然后根据代码生成文档,如果有注释就自动扫描注释,没有就以代码为准,生成的文档如果有不合理的地方,可以在页面进行修改,利用web页面的表单编辑修改要比在代码里处理方便直观。
如下图(图片拼接左侧菜单可能模糊或重影,凑合看):
左侧为菜单,菜单分为两级,一级表示模块,二级表示接口信息,一级菜单就是你定义的模块名称,二级菜单是对外接口的方法名,如果你的方法上有注释,这里会自动解析方法的注释作为二级菜单。菜单拖拽可以排序。
右侧为接口详细信息,主要包括:模拟测试功能,接口详细信息说明,请求参数说明,响应参数说明,参数的详细信息也是默认解析代码,如有注释优先展示注释,支持对象的泛型,多维数组,自嵌套,互相嵌套,并根据参数信息生成一个演示的例子表明接口的使用方式
5.如果需要给接口提供默认值,修改参数的默认值后,会自动重构json参数,告诉你接口怎么使用,清晰明了
<!--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,或者联系我修改(需要付费)
#配置好数据源,运行程序会自动生成4张表,用来存储api的接口信息,不需要开发人员处理,默认会自动生成
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自动扫描并管理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();
}
}
@Api("这里写模块名称")
,这里一个@Api对应页面的一个一级菜单,即模块,模块可以由多个类组成,只需设置每个类的模块名称一样,程序会自动把模块名称一样的class组装成同一模块。http://localhost:8080/apidoc/index.html?packageName=com.demo
即可。如果一个项目有多个文档,比如前端页面一个文档,后台管理一个文档等等,可以用java的包区分。一个包代表一个文档,不同的文档使用不同的包即可。即url后的参数:packageName=你的包名
工具是标准的前后台分离开发架构,后台为MVC开发模式,如果你的技术跟我使用的不一样选择性替换相应的代码层即可。
//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",
};
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。