原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9959844.html

SpringBoot整合Swagger2

步骤

第一步:添加必要的依赖

<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.7.0</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.7.0</version>
</dependency>

第二步:添加必要的配置

一般无配置项,必要时可以添加自定义配置项,在配置类中读取

第三步:添加配置类(重点)

// swagger2的配置内容仅仅就是需要创建一个Docket实例
@Configuration
@EnableSwagger2 //启用swagger2
public class Swagger2Config {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.pathMapping("/")
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.example.springbootdemo"))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("springboordemo")
.description("Springboot整合Demo")
.version("0.0.1")
.build(); // 这部分信息其实可以自定义到配置文件中读取
}
}

通过@Configuration注解,让Spring-boot来加载该类配置。再通过@EnableSwagger2注解来启用Swagger2Config。

再通过createRestApi方法创建Docket的Bean之后,

apiInfo方法用来创建该Api的基本信息(这些基本信息会展现在文档页面中)。

select() 函数返回一个 ApiSelectorBuilder 实例用来控制哪些接口暴露给Swagger2来展现。

一般采用指定扫描的包路径来定义

Swagger会扫描该包下所有Controller定义的API,并产生文档内容(除了被@ApiIgnore指定的请求)

第四步:在Controller和Bean上添加Swagger注解

@RestController
@RequestMapping("/user")
@Log4j2
@Api(description = "用户接口")
public class UserApi { @Autowired
private UserService service; @ApiOperation(value = "添加用户", notes = "根据给定的用户信息添加一个新用户",response = ResponseEntity.class,httpMethod = "PATCH")
@RequestMapping(value = "/addUser",method = RequestMethod.PATCH)
public ResponseEntity<User> addUser(final User user) {
log.info("执行添加用户操作");
return service.addUser(user);
} @ApiOperation(value = "更新用户状态", notes = "根据给定的用户ID修改用户状态",response = ResponseEntity.class,httpMethod = "POST")
@RequestMapping(value = "/updateUser", method = RequestMethod.POST)
public ResponseEntity<User> updateUser(final UseState useState, int useId) {
log.info("执行修改用户状态操作");
return service.updateUser(User.builder().useState(useState).useId(useId).build());
} @ApiOperation(value = "更新用户手机号", notes = "根据给定的用户ID修改用户手机号",response = ResponseEntity.class,httpMethod = "POST")
@RequestMapping(value = "/updateUsePhoneNum", method = RequestMethod.POST)
public ResponseEntity<User> updateUsePhoneNum(final String usePhoneNum, int useId) {
log.info("执行修改用户手机号操作");
return service.updateUsePhoneNum(User.builder().usePhoneNum(usePhoneNum).useId(useId).build());
} @ApiOperation(value = "删除用户", notes = "根据给定的用户ID删除一个用户",response = ResponseEntity.class,httpMethod = "DELETE")
@RequestMapping(value = "/deleteUser", method = RequestMethod.DELETE)
public ResponseEntity<User> deleteUser(final int useId) {
log.info("执行删除用户操作");
return service.deleteUser(useId);
} @ApiOperation(value = "查询用户", notes = "根据给定的用户ID获取一个用户",response = ResponseEntity.class,httpMethod = "GET")
@RequestMapping(value = "getUser", method = RequestMethod.GET)
public ResponseEntity<User> getUser(final int useId) {
log.info("执行查询单个用户操作");
return service.getUser(useId);
} @ApiOperation(value = "查询用户", notes = "根据给定的用户信息查询用户",response = ResponseEntity.class,httpMethod = "POST")
@RequestMapping(value = "getUsers", method = RequestMethod.POST)
public ResponseEntity<List<User>> getUsers(final User user) {
log.info("根据条件查询用户");
return service.getUsers(user);
} }
@ApiModel(value = "用户模型")
public class User {
@ApiModelProperty("用户ID")
private int useId;
@ApiModelProperty("用户姓名")
private String useName;
@ApiModelProperty("用户性别")
private UseSex useSex;
@ApiModelProperty("用户年龄")
private int useAge;
@ApiModelProperty("用户身份证号")
private String useIdNo;
@ApiModelProperty("用户手机号")
private String usePhoneNum;
@ApiModelProperty("用户邮箱")
private String useEmail;
@ApiModelProperty("创建时间")
private LocalDateTime createTime;
@ApiModelProperty("修改时间")
private LocalDateTime modifyTime;
@ApiModelProperty("用户状态")
private UseState useState;
}

第五步:启动应用,浏览器请求

http://localhost:8080/swagger-ui.html

可得到如下界面:

SpringBoot整合系列-整合Swagger2的更多相关文章

  1. SpringBoot整合系列-整合MyBatis

    原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9971036.html SpringBoot整合Mybatis 步骤 第一步:添加必要的j ...

  2. SpringBoot整合系列--整合MyBatis-plus

    原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/10125279.html SpringBoot整合MyBatis-plus 步骤 第一步: ...

  3. SpringBoot整合系列-整合SpringMVC

    原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9984607.html SpringBoot整合Spring MVC 步骤 第一步:添加必 ...

  4. SpringBoot整合系列-整合JPA

    原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9959865.html SpringBoot整合JPA进行数据库开发 步骤 第一步:添加必 ...

  5. SpringBoot整合系列-整合H2

    原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9959855.html SpringBoot整合H2内存数据库 一般我们在测试的时候习惯于 ...

  6. SpringBoot整合系列-PageHelper分页插件

    原创作品,可以转载,但是请标注出处地址:https://www.cnblogs.com/V1haoge/p/9971043.html SpringBoot整合MyBatis分页插件PageHelper ...

  7. SpringBoot系列-整合Mybatis(注解方式)

    目录 一.常用注解说明 二.实战 三.测试 四.注意事项 上一篇文章<SpringBoot系列-整合Mybatis(XML配置方式)>介绍了XML配置方式整合的过程,本文介绍下Spring ...

  8. springboot + mybatis + mycat整合

    1.mycat服务 搭建mycat服务并启动,windows安装参照. 系列文章: [Mycat 简介] [Mycat 配置文件server.xml] [Mycat 配置文件schema.xml] [ ...

  9. SpringBoot与Swagger整合

    1 SpringBoot与Swagger整合https://blog.csdn.net/jamieblue1/article/details/99847744 2 Swagger详解(SpringBo ...

随机推荐

  1. Tensor基本操作

    Tensor(张量) 1.Tensor,又名张量,从工程角度来说,可简单地认为它就是一个数组,且支持高效的科学计算.它可以是一个数(标量).一维数组(向量).二维数组(矩阵)或更高维的数组(高阶数组) ...

  2. 浏览器url地址殊字符转义编码

    网址URL中特殊字符转义编码字符    -    URL编码值 空格    -    %20"          -    %22#         -    %23%        -   ...

  3. 201771010118 马昕璐 《面向对象设计 java》第十七周实验总结

    1.实验目的与要求 (1) 掌握线程同步的概念及实现技术: (2) 线程综合编程练习 2.实验内容和步骤 实验1:测试程序并进行代码注释. 测试程序1: l 在Elipse环境下调试教材651页程序1 ...

  4. webpack学习最基本的使用方式(一)

    网页中引入的静态资源多了以后会有什么问题.? 1.网页加载速度慢,因为我们要发起很多的二次请求 2.要处理错综复杂的依赖关系 如何解决上面的问题 1.合并,压缩图片,使用精灵图 2.可以使用之前学过的 ...

  5. Best Cow Line---POJ 3617(贪心)

    FJ is about to take his N (1 ≤ N ≤ 2,000) cows to the annual"Farmer of the Year" competiti ...

  6. Python爬虫(1):基础知识

    爬虫基础知识 一.什么是爬虫? 向网站发起请求,获取资源后分析并提取有用数据的程序. 二.爬虫的基本流程 1.发起请求 2.获取内容 3.解析内容 4.保存数据 三.Request和Response ...

  7. Dora.Interception,为.NET Core度身打造的AOP框架 [2]:以约定的方式定义拦截器

    上一篇<更加简练的编程体验>提供了最新版本的Dora.Interception代码的AOP编程体验,接下来我们会这AOP框架的编程模式进行详细介绍,本篇文章着重关注的是拦截器的定义.采用“ ...

  8. 解决idea导入项目后依赖报错问题

    1.在idea首页 Confige-->setting-->build,execution,deployment-->buildTool-->maven-->work o ...

  9. 流媒体协议(二):RTMP协议

    一.概念与摘要 RTMP协议从属于应用层,被设计用来在适合的传输协议(如TCP)上复用和打包多媒体传输流(如音频.视频和互动内容).RTMP提供了一套全双工的可靠的多路复用消息服务,类似于TCP协议[ ...

  10. 微信小程序中样式问题

    1.去除button按钮的默认样式 这是button按钮自带的默认样式 button { position:relative; display:block; margin-left:auto; mar ...