,展示在文档的页面中(自定义展示的信息) .apiInfo(apiInfo()) // 是否开启 .enable(environment.getActiveProfiles...discriminator支持模型继承和多态,使用鉴别器的字段的名称,可以断言需要使用哪个子类型subTypes 从此模型继承的子类型数组...reference 指定对应类型定义的引用,覆盖指定的任何其他元数据 @ApiModelProperty:用在属性上,描述实体类的属性 @ApiModelProperty...,也可以是远程引用,将按原样使用,并将覆盖任何指定的 response()类responseHeaders 可能响应的 header 列表...examples @ApiIgnore():用于类或者方法上,不被显示在页面上@Profile({"dev", "test"}):用于配置类上,表示只对开发和测试环境有用
-- 生成Java模型的包名与路径,这些模型是与数据库表中字段相对应的类,用来操作数据库,会生成xxx.class和xxxExample.class,Example类一般用来构造复杂查询 -->..."; /** * 设置用户配置的参数 * 得到在xml中配置在中的参数properties */ @Override...,没的话则为"" //根据参数和备注信息判断是否添加swagger注解信息 // 这里为若数据库字段有注释,则生成对应的 @ApiModelProperty(value...("\"", "'"); } //给model的字段添加swagger注解 field.addJavaDocLine("@ApiModelProperty...中的非Example添加swagger注解类的导入 // 这是防止上述添加了@ApiModelProperty注解后却没有导入包的情况 if (!
为什么要使用Swagger 在实际的开发中,前后端多多少少都被接口文档的编写的调用折磨过。前端经常抱怨后端给的接口文档与实际情况不一致;后端又觉得编写及维护接口文档会耗费不少精力,经常来不及更新。...在配置文件中配置Swagger # 配置swagger swagger.basePackage:cn.kt.springboot_cache swagger.title:如我西沉のAPI swagger.description...() 用于方法中要接收的参数,字段说明;表示对参数的添加元数据(说明或是否必填等) name–参数名 value–参数说明 required–是否必填 使用方法: @GetMapping...)用于方法,字段; 表示对model属性的说明或者数据操作更改 value–字段说明 name–重写属性名字 dataType–重写属性类型 required–是否必填 example–举例说明...用于类或者方法上 @ApiIgnore()用于类或者方法上,可以不被swagger显示在页面上 比较简单, 这里不做举例 小结:Swagger提供的注解功能还是很丰富的,但在具体开发中如果全部都要去使用还是挺麻烦的
的map字段显示 Swagger2在显示一个接口的Response时,如果Model中存在map类型的字段(比如下面的customFields),则会在Example Value中显示为: 1 2 3...Map对象的字段重写的具体思路如下: 在map字段上添加@ApiModelProperty(notes = "xxx")。...)); } // 只有在map类型的字段上使用了ApiModelProperty注解,并使用了notes属性才进行字段的解析 if (annotation.isPresent...:如果Map中存在List类型的字段,比如List,若要在Swagger的文档中也将这个xxDto也显示到Example Value里,可以定义一个类,继承List,如上述代码中最后定义的静态内部类...按类中字段定义的顺序展示字段 Swagger默认按照首字母顺序来显示接口和字段。
没有使用swagger的时候,你写完后端接口,得自己将后端接口地址一个个地整理出来,告诉别人这个接口是干嘛的,要传哪些参数,正常情况下返回的参数是咋样的,非正常情况返回的又是咋样的。很麻烦有木有?...接口中使用swagger: 假如我现在在swagger能扫描到的包下新建如下几个类: @Data public class User { private long userId; private...但是,这样看起来怪怪的,因为没有接口的说明,也没有字段的说明,字段是否能为空也没有限制,响应示例也没有。 5....@ApiModelProperty(value="用户名",name="userName",example="律政先锋"):加在user类属性上,说明这个字段是干啥的 这样,在接口中就会显示这些参数的释义了...显示model: 我们还可以直接将整个User类暴露在接口文档中,只需要在add方法中,加上@RequestBody,那么在页面中就会显示model了。
1.这里使用的版本:springfox-swagger2(2.4)springfox-swagger-ui (2.4) 2.这里是说明常用注解的含义和基本用法(也就是说已经对swagger进行集成完成...()用于方法,参数,字段说明; 表示对参数的添加元数据(说明或是否必填等) – @ApiModel()用于类 表示对类进行说明,用于参数用实体类接收 – @ApiModelProperty...用于方法 表示单独的请求参数 – @ApiImplicitParams() 用于方法,包含多个 @ApiImplicitParam 具体使用举例说明: @Api() 用于类;表示标识这个类是...;表示对类进行说明,用于参数用实体类接收 value–表示对象名 description–描述 都可省略 @ApiModelProperty()用于方法,字段; 表示对model属性的说明或者数据操作更改...,可以不被swagger显示在页面上 比较简单, 这里不做举例 @ApiImplicitParam() 用于方法 表示单独的请求参数 @ApiImplicitParams() 用于方法,包含多个
背景介绍 在团队开发中,一个好的 API 文档不但可以减少大量的沟通成本,还可以帮助一位新人快速上手业务。...指定的引用可以是本地的,也可以是远程的*将按原样使用,并覆盖任何指定的response()类 responseHeaders 响应旁边提供的可能标题列表 httpMethod "GET", "HEAD"...属性 说明 value 字段说明 name 参数名称 dataType 参数类型 hidden 在文档中隐藏 required 是否必要 example 举例说明 notes 注释说明 案例演示 Controller...标注Swagger中的参数信息,因为在这里的输入参数是实体对象,而在实体对象中已经使用@ApiModel和@ApiModelProperty注解进行了标识。...修改Swagger2配置类 添加@Profile注解,指明在何种环境下可以使用Swagger2,一般情况下只有在开发(dev)和测试(test)环境下才可以使用Swagger2;而在生产(dev)环境下不能使用
另外文章中也有我在开发中遇到的问题及解决方法,统一记录下来。 真的比 postman 省心,对于前后端联调、测试、用户来说都很便利。...在 swagger-ui 页面上的体现形式如下图所示: ?...3、PO、DTO、VO 说明及使用 PO(Persistant Object) 持久对象,用于表示数据库中的一条记录映射成的 java 对象,可以理解一个 PO 就是数据库中的一条记录; DTO(Data...因为 PO 中可能存在冗余字段,如果用 PO 来接收参数的话,冗余字段也会在 Swagger ui 页面上显示,用户体验并不好,所以我们用 DTO 来接收请求参数。...同理,为了避免返回给前端的数据存在冗余字段(即不需要展示的字段),我们可以使用 VO 来接收数据返回给前端进行交互。
背景介绍 ---- 在团队开发中,一个好的 API 文档不但可以减少大量的沟通成本,还可以帮助一位新人快速上手业务。...指定的引用可以是本地的,也可以是远程的*将按原样使用,并覆盖任何指定的response()类 responseHeaders 响应旁边提供的可能标题列表 httpMethod "GET", "HEAD"...属性 说明 value 字段说明 name 参数名称 dataType 参数类型 hidden 在文档中隐藏 required 是否必要 example 举例说明 notes 注释说明 案例演示 Controller...@ApiImplicitParam标注Swagger中的参数信息,因为在这里的输入参数是实体对象,而在实体对象中已经使用@ApiModel和@ApiModelProperty注解进行了标识。...修改Swagger2配置类 ---- 添加@Profile注解,指明在何种环境下可以使用Swagger2,一般情况下只有在开发(dev)和测试(test)环境下才可以使用Swagger2;而在生产(dev
本文源自 公-众-号 IT老哥 的分享 IT老哥,一个在大厂做高级Java开发的程序员,每天分享技术干货文章 关于 Swagger Swagger能成为最受欢迎的REST APIs文档生成工具之一,有以下几个原因...Swagger 可以生成客户端SDK代码用于各种不同的平台上的实现。 Swagger 文件可以在许多不同的平台上从代码注释中自动生成。 Swagger 有一个强大的社区,里面有许多强悍的贡献者。...你可以通过一个文本编辑器来编辑 Swagger 文件,或者你也可以从你的代码注释中自动生成。各种工具都可以使用 Swagger 文件来生成互动的 API 文档。...下面讲swagger注解实用 @Api() 用于类;表示标识这个类是swagger的资源 tags–表示说明 value–也是说明,可以使用tags替代 但是tags如果有多个值,会生成多个list...;表示对类进行说明,用于参数用实体类接收 value–表示对象名 description–描述 都可省略 @ApiModelProperty()用于方法,字段;表示对model属性的说明或者数据操作更改
一、定义转换规则 定义的类上边增加@Named注解标注转换名称 定义转换规则 import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSON...(value = "商品编号", required = true, example = "1024") private Long id; @ApiModelProperty(value...VO 使用 * 如果子 VO 存在差异的字段,请不要添加到这里,影响 Swagger 文档生成 */ @Data public class ShopBaseVO { /**...Byte status; /** * 服务字段 */ @ApiModelProperty("服务字段") private String serviceField...* 补充报考字段 */ @ApiModelProperty("补充报考字段") private String examinationField; /** * 创建者
假如接收参数的实体类中关联了其他对象,那么swagger2的页面中参数应该会多出来这些,dept.id,dept.deptName,或者集合属性,roles[0].id,roles[0].roleName...image 笔者在swagger2提供的配置中没有找到隐藏此类参数的设置 但是通过阅读源码找到了展开参数的类springfox.documentation.spring.web.readers.parameter.ModelAttributeParameterExpander...,笔者通过继承这个类,并添加@Primary注解覆盖了源码中的逻辑,修改了getBeanPropertyNames方法,其他不变 swagger2版本2.8.0 解决方案 package com.example.swagger...,在不需要递归展开的属性上加上IgnoreSwaggerParameter注解 package com.example.model.po; import com.example.annotation.IgnoreSwaggerParameter...swagger2页面中的参数了。
在Spring Boot中规范的使用Swagger进行接口测试 文章目录 Swagger是什么? 为什么要用Swagger?...Swagger主要包括了一下三个部分: Swagger Editor: 基于浏览器的编辑器,我们可以使用它来编写我们的OpenAPI文档。...验证 启动一下项目,然后在浏览器中访问http://localhost:8080/swagger-ui.html 到此项目已经跑起来了,我们来解释一下,Swagger中的高级配置**(代码注释写的也很清楚...("/add") public boolean addUser(User user){ return false; } 通过在实体类上添加@ApiModel和@ApiModelProperty...Swagger不适用默认的HTTP响应消息 ,假设我们需要覆盖所有GET方法的 500 和 403 错误的响应消息。
一、Swagger简介 在日常的工作中,我们往往需要给前端(WEB端、IOS、Android)或者第三方提供接口,这个时候我们就需要给他们提供一份详细的API说明文档。...这篇文章中我们会用到Swagger的文档管理和测试功能。 对Swagger的作用有了基本的认识后,我们现在来看看怎么使用。...:详细描述 @ApiModelProperty是对具体每个字段的属性配置: name:字段名称 value:字段的说明 required:是否必须 example:示例值 hidden:是否显示 完成上面的配置后...,我们再来看效果: 现在我们可以看到,字段的说明都已经展示出来,并且,示例中字段的值也变成了我们配置的example属性对应的值了。...除此之外,Swagger还能根据配置自动为我们生成测试的数据,并且提供对应的HTTP方法,这对我们的自测和联调工作也有不少的帮助,所以我还是推荐大家在日常的开发中去使用Swagger,应该可以帮助大家在一定程度上提高工作效率的
在Spring Boot中集成Swagger2,使用@ApiImplicitParam注解时出现如下异常“Illegal DefaultValue 0 for parameter type integer...@ApiImplicitParam时,针对id字段,使用了required=true和defaultValue=“0”的配置,但并不能解决该异常。...于是在上面的属性中添加了example = "0"的属性。异常成功解决。...如果在实体类中,Integer类型的属性加@ApiModelProperty时,必须要给example参数赋值,且值必须为数字对应的字符串。...如下示例中的ID字段: @Data @ApiModel(value = "用户实体类",description = "用户信息,用户接受、返回参数") public class User { @ApiModelProperty
这篇文章中我们会用到Swagger的文档管理和测试功能。 对Swagger的作用有了基本的认识后,我们现在来看看怎么使用。...大家可能比较熟悉的是前三种,最后一种ant匹配,如果不熟悉ant的话就直接忽略吧,前三种应该足够大家在日常工作中使用了。 ...现在我们可以看到,字段的说明都已经展示出来,并且,示例中字段的值也变成了我们配置的example属性对应的值了。...除此之外,我们还可以直接通过该文档很方便的进行测试,我们只需要点击Example Value下黄色的框,里面的内容就会自动复制到article对应的value框中,然后在点击“Try it out”就可以发起...除此之外,Swagger还能根据配置自动为我们生成测试的数据,并且提供对应的HTTP方法,这对我们的自测和联调工作也有不少的帮助,所以我还是推荐大家在日常的开发中去使用Swagger,应该可以帮助大家在一定程度上提高工作效率的
这篇文章中我们会用到Swagger的文档管理和测试功能。 对Swagger的作用有了基本的认识后,我们现在来看看怎么使用。...:详细描述 @ApiModelProperty是对具体每个字段的属性配置: name:字段名称 value:字段的说明 required:是否必须 example:示例值 hidden:是否显示 完成上面的配置后...现在我们可以看到,字段的说明都已经展示出来,并且,示例中字段的值也变成了我们配置的example属性对应的值了。...除此之外,我们还可以直接通过该文档很方便的进行测试,我们只需要点击Example Value下黄色的框,里面的内容就会自动复制到article对应的value框中,然后在点击“Try it out”就可以发起...除此之外,Swagger还能根据配置自动为我们生成测试的数据,并且提供对应的HTTP方法,这对我们的自测和联调工作也有不少的帮助,所以我还是推荐大家在日常的开发中去使用Swagger,应该可以帮助大家在一定程度上提高工作效率的
在Spring Boot中规范的使用Swagger进行接口测试Swagger是什么?Swagger是一套基于OpenAPI规范构建的开源工具,可以帮助我们设计、构建、记录以及使用Rest API。...Swagger主要包括了一下三个部分:Swagger Editor: 基于浏览器的编辑器,我们可以使用它来编写我们的OpenAPI文档。...@EnableSwagger2是启用Swagger2.验证启动一下项目,然后在浏览器中访问http://localhost:8080/swagger-ui.html图片到此项目已经跑起来了,我们来解释一下...,Swagger中的高级配置(代码注释写的也很清楚)高级配置文档注释通过在控制器类上添加@Api注解,可以给控制器增加描述和标签信息@Api(tags = "用户相关接口",description =...和@ApiModelProperty注解来对我们的API所涉及到的对象做描述@ApiModel("用户实体类")public class User { @ApiModelProperty("用户名
knig5.png 原生Swagger Springboot集成Swagger,其实很简单,主要是使用常用的几个注解而已。...因为在面试他人的过程中,还是有不少人没使用过Swagger,所以这里简单介绍下。...@Api:作用于类上,标识此类是Swagger的资源。 @ApiOperation:主要作用于方法上,用于对一个接口进行说明。 @ApiParam:用于方法,参数,字段上,用于对参数进行说明。...@ApiModel:作用于类上,主要用于实体类当接口参数时使用,对实体类进行说明。 @ApiModelProperty:作用于方法和字段上,一般用于实体类的属性说明。...配置类还是和原生的一模一样,即上面介绍过的Swagger2Config类,注解的使用也是和原生的完全一样。