# java-api-doc
励志做java届最好的文档生成工具,自动解析代码生成api接口文档,前后台分离开发的福音,零代码入侵,零注释入侵
# 解决的痛点
通常的文档生成工具,都需要开发人员编写注解或注释,代码入侵太强,而且费事,我希望工具自动解析代码,然后根据代码生成文档,如果有注释就自动扫描注释,没有就以代码为准,生成的文档如果有不合理的地方,可以在页面进行修改,利用web页面的表单编辑修改要比在代码里处理方便直观。
# 页面布局
如下图(图片拼接左侧菜单可能模糊或重影,凑合看):

1. 左侧为菜单,菜单分为两级,一级表示模块,二级表示接口信息,一级菜单就是你定义的模块名称,二级菜单是对外接口的方法名,如果你的方法上有注释,这里会自动解析方法的注释作为二级菜单。菜单拖拽可以排序。
2. 右侧为接口详细信息,主要包括:模拟测试功能,接口详细信息说明,请求参数说明,响应参数说明,参数的详细信息也是默认解析代码,如有注释优先展示注释,支持对象的泛型,多维数组,自嵌套,互相嵌套,并根据参数信息生成一个演示的例子表明接口的使用方式
# 页面操作
1. 左侧二级菜单可以双击修改,失去焦点时自动保存

2. 左侧一级,二级菜单可以拖拽排序

3. 所有带 “编辑”按钮的地方都可以编辑保存,textarea编辑时可以带回车换行,自动记录你的文本格式


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

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

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

# 代码使用
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>
```
2. 修改配置文件
```
#是否开启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
```
2. 增加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();
}
}
```
3. 在你的controller类上增加注解`@Api("这里写模块名称")`,这里一个@Api对应页面的一个一级菜单,即模块,模块可以由多个类组成,只需设置每个类的模块名称一样,程序会自动把模块名称一样的class组装成同一模块。
4. 浏览器访问地址`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代码自动生成api接口文档.zip
需积分: 0 182 浏览量
更新于2023-06-14
收藏 811KB ZIP 举报
在Java开发过程中,API接口文档是至关重要的,它为开发者提供了清晰的接口使用指南,确保团队间的协同工作高效且无误。"Java代码自动生成api接口文档.zip"这个压缩包包含了一个名为apidoc2-master的项目,这通常是一个用于自动生成API文档的工具或框架。下面我们将详细探讨这个主题。
API文档生成器简化了编写接口文档的过程,尤其是对于大型项目,手动编写文档既耗时又容易出错。apidoc2-master可能是一个基于Java的解决方案,用于自动化这个过程。它可能利用注释(annotations)或其他元数据来解析代码,并根据这些信息创建结构化的文档。
1. **Java注释与元数据**:
Java中的Javadoc是一种标准的注释方式,用于生成文档。开发者可以在类、方法、变量等前添加特定的注释,apidoc2-master可能通过解析这些Javadoc注释来生成接口文档。此外,还可以使用自定义注解来提供更丰富的元数据,如HTTP方法、请求参数、响应类型等。
2. **API设计模式**:
API设计通常遵循RESTful原则,使用HTTP方法(GET、POST、PUT、DELETE等)表示操作,URL表示资源。apidoc2-master可能支持这些标准,并能正确地将代码中的这些元素转换为文档。
3. **模板引擎**:
自动化文档生成器通常结合了模板引擎,如FreeMarker或Mustache,允许开发者自定义生成的文档的样式和布局。apidoc2-master可能包含了预设的模板,也可以让用户根据需求进行定制。
4. **输出格式**:
生成的API文档可能有多种输出格式,包括HTML、Markdown、PDF等,以便于在线查看、离线阅读或者打印。apidoc2-master可能支持这些格式的转换。
5. **集成开发环境(IDE)集成**:
高效的工具通常会与常见的IDE(如IntelliJ IDEA、Eclipse等)集成,提供实时预览和更新功能。apidoc2-master可能有相应的插件,使得开发者在编码的同时就能看到接口文档的变化。
6. **版本管理**:
对于多版本API的项目,apidoc2-master可能支持版本跟踪,可以轻松地查看不同版本的接口差异。
7. **测试支持**:
高级的API文档工具还可能整合测试工具,允许开发者直接在文档中运行接口测试,验证接口的正确性。
8. **持续集成(CI/CD)**:
在持续集成环境中,apidoc2-master可能配置为每次代码提交后自动更新文档,确保文档始终与代码同步。
9. **安全性与权限**:
如果apidoc2-master是为企业级应用设计的,那么它可能会考虑API的安全性,如OAuth2认证、API密钥管理等。
10. **多语言支持**:
对于国际化项目,apidoc2-master可能支持生成多语言版本的文档,方便全球团队协作。
通过使用apidoc2-master这样的工具,开发者可以提高工作效率,减少错误,并确保API接口的透明度和易用性。不过,具体的功能和使用方法还需要进一步查阅apidoc2-master的文档或源码来了解。

YOLO数据集工作室
- 粉丝: 961
最新资源
- 嵌入式系统及应用-Chapter1-嵌入式系统导论.ppt
- 网络营销精英培训计划.pptx
- 最新毋岩毕业设计正文(基于单片机设计的数字电子钟).doc
- 乐活网电子商务解决方案.doc
- 数字图像处理(冈萨雷斯)第一章-绪论.ppt
- 校园网络维护记录[最终版].pdf
- 循环程序设计陈.doc
- 主流计算机图像技术.doc
- 云计算关键技术与应用技能协作训练组集训专项方案.doc
- 数据库原理与技术课程习题答案.doc
- 网络工程生产实习报告.doc
- 学习]网络科学导论度分布.ppt
- 专升本《计算机软件基础》模拟题试卷.doc
- 互联网应用与安全.ppt
- 项目管理技术在工程成本方面的综合运用.doc
- 网络游戏营销方案.pptx