手把手教你SpringBoot快速集成Swagger的配置过程
导语
相信大家无论是做前端还是做后端的,都被接口接口文档所折磨过,前端抱怨接口文档和后端给的不一致,后端抱怨写接口文档很麻烦,所以Swagger就诞生了。直接配置即可自动生成接口文档,而且提供了高效的API测试
话不多说直接开干
导入SpringBoot集成Swagger所需要的依赖
<!--web方便测试--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!-- swagger2核心包 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> </dependency> <!-- swagger-ui 可视化界面 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version> </dependency>
Swagger可视化界面可分为三个区域
Swagger相关配置
package com.example.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import springfox.documentation.builders.RequestHandlerSelectors; import springfox.documentation.service.ApiInfo; import springfox.documentation.service.Contact; import springfox.documentation.spi.DocumentationType; import springfox.documentation.spring.web.plugins.Docket; import springfox.documentation.swagger2.annotations.EnableSwagger2; import java.util.ArrayList; @Configuration @EnableSwagger2 //开启Swagger的使用 public class SwaggerConfig { @Bean //Swagger的使用主要是要将docket对象传入IOC容器 public Docket docket(){ return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) //关于文档的各种信息 .enable(true) //使Swagger生效 .groupName("常安祖") .select()//选择扫描的接口 .apis(RequestHandlerSelectors.basePackage("com.example.controller"))//指定扫描的接口 .build(); } public ApiInfo apiInfo(){ Contact contact = new Contact("长安","https://blog.csdn.net/weixin_45647685","719801748@qq.com");//个人的联系方式 return new ApiInfo("长安的文档", "长安的开发文档", "1.0", "urn:tos",null, "Apache 2.0", "http://www.apache.org/licenses/LICENSE-2.0", new ArrayList());//文档的各种信息 } }
@ApiModel( ) //主要用来标注返回的实体类
@ApiModelProperty( ) //主要用来标注实体类中的属性
案例:
@ApiModel("用户的实体类") public class User implements Serializable { @ApiModelProperty("用户的id") private Integer id; @ApiModelProperty("用户的姓名") private String name; @ApiModelProperty("用户的年纪") private Integer age; public Integer getId() { return id; } public User(Integer id, String name, Integer age) { this.id = id; this.name = name; this.age = age; } public void setId(Integer id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } }
@ApiModelProperty用来标注API接口
案例:
package com.yangzihao.controller; import com.yangzihao.entity.User; import io.swagger.annotations.ApiModelProperty; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; @RestController public class UserController { @ApiModelProperty("得到一个User") @GetMapping("/getUser") public User getUser(){ return new User(1,"测试",18); } }
进入Swagger可视化界面
使用Swagger进行接口测试
执行
到此这篇关于手把手教你SpringBoot快速集成Swagger的配置过程的文章就介绍到这了,更多相关SpringBoot集成Swagger内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
如何使用Jackson和JSON Pointer查询解析任何JSON节点
本文介绍了JSON Pointer是字符串表达式,可以非常方便解析复杂JSON节点值,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2021-09-09关于springboot集成swagger及knife4j的增强问题
这篇文章主要介绍了springboot集成swagger以及knife4j的增强,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-03-03SpringBoot之bootstrap和application的区别解读
这篇文章主要介绍了SpringBoot之bootstrap和application的区别及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教2023-03-03springboot 自定义LocaleResolver实现切换语言
我们在做项目的时候,往往有很多项目需要根据用户的需要来切换不同的语言,使用国际化就可以轻松解决。这篇文章主要介绍了springboot 自定义LocaleResolver切换语言,需要的朋友可以参考下2019-10-10
最新评论