Java-自动生成带页面可调试的接口文档

介绍:一款java接口文档自动生成的插件,包含了根据接口注释或注解自动生成接口文档,可网页打开。

特点:一款无任何代码侵入的生成方式,10秒钟集成

1.支持读取java默认的行注释和文档注释

2.兼容swagger注释

3.推荐使用内部@ApidocComment注解,属性标注比较全面,默认值也比较友好

4.支持生成接口mock数据

5.支持使用自定义请求参数和请求头真实调用接口测试

6.支持统一添加返回数据外包装

功能列表:

首页-文档介绍

首页-请求环境配置(可配置多个地址,用于模拟请求)

首页-返回参数外包装配置(可手动配置项目对返回数据的包装结构)

首页-同步文档(将文档向指定地址发送同步,目标地址成功接收后会更新自己的文档)

这里是列表文本

这里是列表文本

菜单栏-搜索(可根据接口名称和接口请求路径模糊搜索接口,支持拼音搜索)

菜单栏-控制器列表(controller)

菜单栏-接口列表

菜单栏-删除接口

菜单栏-导入接口(将其他接口文档导入导本地)

接口详情-修改接口基本信息

接口详情-导出接口结构

这里是列表文本

接口详情-选择环境

接口详情-接口返回mock(自动生成假数据)

接口详情-接口真实请求

接口详情-选择参数填写方式(json或form)

接口详情-修改接口入参(字段隐藏,字段必填,字段类型。。。)

接口详情-修改接口返回值

接口详情-导入导出接口入参和返回

包含权限和用户模块,可以自定义用户和访问权限

软件架构

使用springboot-2.1.3核心架构

页面呈现使用VUE

数据存取采用本地json文件

安装说明

下载jar包:https://download.csdn.net/download/qq_37527048/12918433

maven导入项目中,添加配置文件

cn.easyutil

easyapi/artifactId>

使用说明:添加如下配置后,启动项目。

浏览器输入     http://localhost:项目端口/apidoc.html     即可以访问页面

package cn.easyutil.easyapi.logic;

import cn.easyutil.easyapi.config.ApiDocConfiguration;

import org.springframework.context.annotation.Configuration;

//自定义类继承ApiDocStarter

//添加spring配置类注解

//OK,不需要写任何代码,启动项目就完事了

@Configuration

public class ApiInfo extends ApiDocStarter{

@Override

public ApiDocConfiguration start(ApiDocConfiguration configuration) {

//此处为自定义配置,可以返回null,使用默认配置

return null;

}

}

如果想采用自定义配置,可以拉到文章最下面,有详细介绍。

java代码示例(controller层接口)

@Api("客户操作")

@RestController

@RequestMapping("/api")

public class UserController {

@Autowired

private UserService userService;

@ApiOperation("按条件查看自己添加的客户")

@PostMapping("/selfUser")

public List selfUser(UserBean bean){

return userService.listPage(bean);

}

}

java代码示例(实体类)

@Data

public class UserBean {

@ApiModelProperty(value="用户名称",required=true,example="小明")

private String name;

@ApiModelProperty(value="用户手机号码",example="18888888888")

private String mobile;

@ApiModelProperty(value="性别 0:女 1:男",required=true,example="${int}")

private Integer sex;

//用户住址 (easyapi支持java原生注释扫描)

private String address;

/**

* 用户年龄 (easyapi支持java原生注释扫描)

*/

private Integer age;

}

页面样式

可以设置多种环境,进行模拟请求

支持模糊搜索接口路径或名称,支持拼音搜索

接口详情预览

包含:基本信息模块、mock模块、请求参数模块、返回参数模块

说明:任意模块均支持增删改查

接口基本信息详解

接口请求参数设置

接口返回参数设置

mock模块

1.点击发送,将请求到接口基本信息配置中所选择的环境

2.内部使用了session保持,即浏览器与接口文档服务session保持,接口文档服务与请求的环境session保持,间接达到浏览器与请求的环境session保持

3.被禁用的参数不会被发送

4.表格模式和json模式仅是为了方便填写请求参数,实体请求体类型是根据接口基本信息中的请求体类型而决定的。这两种模式填写完成后最终都会转成对应的请求体类型。

5.如果选择的是mock环境,是不会真实请求目标环境的。仅仅是接口文档服务根据返回参数类型随机mock的数据。

还有些详细的功能就不再贴图了,谁用谁知道

个性化配置/自定义配置

默认配置:项目配置文件如果返回空,或没有进行配置,仍然会采用一些默认的配置

1.默认扫描全部controller

2.默认每次启动都会重新扫描,重新扫描只会扫描新增的接口,不会扫描被修改的接口

3.默认每次启动都不会删除旧的构建,即历史接口和修改不会被删除

4.默认文件存储的路径为项目根目录,文件夹名为:项目名 + "-apidoc"

5.默认优先扫描被@ApidocComment注解的文档说明,其次扫描swagger注解的文档相关说明,

再其次扫描java注释的文档相关说明

自定义配置

@Configuration

public class ApiInfo extends ApiDocStarter{

@Override

public ApiDocConfiguration start(ApiDocConfiguration configuration) {

//设置接口文档文件路径

configuration.setApiFilePath("D:/");

//设置接口文档文件夹名称

configuration.setProjectName("easyapi");

//启动时是否重新扫描,有新增的接口会添加

configuration.setRescan(true);

//启动时是否删除旧的构建

configuration.setDelOld(false);

//扫描的包路径,不设置默认扫描整个项目

configuration.setPackageName("cn.easyutil");

//启动时是否自动同步到目标机器

configuration.setSync(true);

//目标机器项目地址

configuration.setSyncAddress("127.0.0.1");

//目标机器项目端口

configuration.setSyncPort(8080);

return configuration;

}

}

自定义高级配置

@Configuration

public class ApiInfo extends ApiDocStarter{

//拦截器都配有默认拦截器,可以通过实现相关filter自主配置拦截器

//也可以通过继承默认拦截器补充个性化配置

@Override

public ApiDocConfiguration start(ApiDocConfiguration configuration) {

//读取参数实体相关信息拦截器

configuration.setReadBeanApiFilter(new DefaultReadBeanApi());

//读取controller相关信息拦截器

configuration.setReadControllerApiFilter(new DefaultReadControllerApi());

//读取接口方法相关信息拦截器

configuration.setReadInterfaceApiFilter(new DefaultReadInterfaceApi());

//读取接口请求参数相关信息拦截器

configuration.setReadRequestParamApiFilter(new DefaultReadRequestParamApi());

//读取接口返回值相关信息拦截器

configuration.setReadResponseParamApiFilter(

new DefaultReadResponseParamApi());

return configuration;

}

}

拦截器配置:ReadBeanApiFilter

介绍:接口文档服务在读取参数类的时候对读取方式和结果进行拦截和配置。例如

1.类字段的隐藏属性读取方式和依据

2.类字段的必填属性读取方式和依据

3.类字段的字段说明属性读取方式和依据

4.类字段的mock属性读取方式和依据

5.类字段的忽略属性读取方式和依据

... ...

其他拦截器的详细方法和作用就不再一一列举了,还是那句话,谁用谁知道

技术探讨qq:547595531

在html文件中集成easy,easyapi 通过java注解或注释自动生成带页面的接口文档相关推荐

  1. python实现:读取PDF文件中的英文单词,并将前二十个高频词储存到一个docx文档中

    总体思路如下: 1.读取PDF文件,将其中的英文单词提取出来 2.获得每个英文单词的词频,通过字典将英文单词及其词频配对 3.将英文单词按照词频由大到小排序 4.创建并写入docx文档 首先打开PDF ...

  2. IDEA:Idea 集成 EasyYApi 插件实现接口文档的生成与更新

    我是 ABin-阿斌:写一生代码,创一世佳话,筑一览芳华.如果小伙伴们觉得不错就一键三连吧~ 声明:文章原文来源处: https://blog.csdn.net/weixin_40863968/art ...

  3. springboot 接口文档 请求 enum_Spring Boot集成SpringFox 3:生成Swagger接口文档

    SpringFox介绍 SpringFox是一个开源的API Doc的框架, 它的前身是swagger-springmvc,可以将我们的Controller中的方法以文档的形式展现.官方定义为:Aut ...

  4. Swagger2生成在线接口文档并导出pdf文件

    文章目录 一,配置 1,pom依赖 2,通用配置 二,注解 三,主题 1,默认主题效果 2,添加依赖 3,添加配置 4,启动看效果 四,token验证 方法1,所有接口上添加 方法2,全局统一添加 五 ...

  5. SpringBoot 集成接口文档,老鸟们也被打脸了!

    之前我在SpringBoot老鸟系列中专门花了大量的篇幅详细介绍如何集成Swagger,以及如何对Swagger进行扩展让其支持接口参数分组功能.详情可见:SpringBoot 如何生成接口文档,老鸟 ...

  6. springboot项目集成java接口文档生成工具knife4j

    knifie knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案,前身是swagger-bootstrap-ui,取名kni4j是希望她能像一把匕首一样小巧,轻量,并 ...

  7. SpringBoot集成Swagger2生成API接口文档

    SpringBoot2.3.0集成Swagger2 引入Swagger2相应的依赖 入门示例 SpringBoot2集成Swagger2后启动报错 结语 背景:最近在工作中发现,已经多次发现后台开发人 ...

  8. oracle web API,在Web API程序中使用Swagger做接口文档

    #### 创建Web API程序 在VS2019中创建一个ASP.NET Web应用程序,选择Web API来创建RESTful的HTTP服务项目,构选MVC和Web API核心引用. #### 安装 ...

  9. springboot 中文文档_比Swagger还好用的自动生成接口文档工具

    JApiDocs是一个无需额外注解.开箱即用的SpringBoot接口文档生成工具. 编写和维护API文档这个事情,对于后端程序员来说,是一件恼人但又不得不做的事情,我们都不喜欢写文档,但除非项目前后 ...

最新文章

  1. 错误:处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”
  2. mongoDB 介绍(特点、优点、原理)
  3. superset可视化-Bar Chart
  4. python的flag是什么意思_网上老说的flag是什么意思
  5. saltapi java_搭建基于Jenkins salt-api的运维工具
  6. 大工20秋计算机组成原理在线作业2,大工14秋《计算机组成原理》在线作业2答案...
  7. 执行计划生成及查看的几种方法
  8. matplotlib 散点图_python之matplotlib 折线图和散点图
  9. 日志对于运维的重要性
  10. PHP设计模式——解释器模式
  11. 错误、调试和测试(4)-文档测试
  12. php上js实现ajax请求,原生JS实现ajax与ajax的跨域请求实例
  13. Centos7二进制安装Mysql8.0.20
  14. 2021年终总结,我躺平了?
  15. 转正述职报告怎么写?五年经验PM告诉你……
  16. 2019年繁星屠龙1-8窍门_《倚天屠龙记》27年后,赵敏终于在元大都等到了41岁的林峰...
  17. dao层通用封装_层超类型模式:封装多层系统中的通用实现
  18. 一梦江湖带你走进真正的武侠世界!
  19. 【海外APP】Twitch 全球首屈一指的游戏直播平台
  20. ffmpeg压缩命令

热门文章

  1. 【华人学者风采】罗忠敬 清华大学
  2. 当财政电子票据遇上区块链……
  3. 配置酷酷的Windows Powershell
  4. 3.2 - E 学生查询
  5. sota结果是什么意思_文本摘要新框架,抽取式摘要“轻松”取得SOTA
  6. 大连首届“最美品牌文化代言人”启动,汉纳西点发现传播美好
  7. git和github的区别与简介,简单易懂
  8. js获取剪切板内容(企业微信内嵌网页)
  9. 关于项目型和职能型组织结构的思考和笔记
  10. PMP复习整理考点篇【2】--- 组织结构类型