SpringBoot基于Swagger2构建API文档过程解析
作者:我好难啊upup 时间:2022-12-06 20:42:58
一、添加依赖
<!--SpringBoot使用Swagger2构建API文档的依赖-->
<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配置类
package com.offcn.config;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration//表示该类为一个配置类,相当于spring中的xml配置文件
@EnableSwagger2 //开启在线文档
public class SwaggerConfig {
//1.声明 api 文档的属性
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("Spring Boot中使用Swagger2构建RESTful APIs")
.description("优就业")
.termsOfServiceUrl("http://www.ujiuye.com/")
.contact("小刘同学")
.version("1.0")
.build();
}
//配置核心配置信息
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("com.offcn.controller"))
.paths(PathSelectors.any())
.build();
}
}
三、修改Controller 增加文档注释
通过@ApiOperation注解来给API增加说明
通过@ApiImplicitParams@ApiImplicitParam注解来给参数增加说明
package com.offcn.controller;
import com.offcn.dao.UserDao;
import com.offcn.entity.User;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RequestMapping("/rest")
@RestController
public class RestFulController {
@Autowired
private UserDao userDao;
@GetMapping("/getUserById")
@ApiOperation(value="查找指定id用户信息", notes="根据id查找用户信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "Integer"),
})
public User getUserById(Integer id){
User user = userDao.getOne(id);
return user;
}
@DeleteMapping("/del")
@ApiOperation(value="删除指定id用户信息", notes="根据id删除用户信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "Integer"),
})
public String delUserById(Integer id){
userDao.deleteById(id);
return "success";
}
}
四、查看Swagger2文档
重启项目
访问:
http://localhost:8080/swagger-ui.html
来源:https://www.cnblogs.com/lqcswy/p/11802673.html
标签:spring,boot,swagger,2,构建,api
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
C#判断访问来源是否为搜索引擎链接的方法
2021-11-01 09:15:53
Java中定时器Timer致命缺点案例详解
2022-08-27 08:38:45
![](https://img.aspxhome.com/file/2023/0/66200_0s.png)
C#下listview如何插入图片
2023-06-18 11:45:44
java多线程Future和Callable类示例分享
2021-09-02 09:49:37
Android开发升级AGP7.0后的一些适配方法技巧
2022-10-22 17:41:22
![](https://img.aspxhome.com/file/2023/6/137826_0s.jpg)
你什么是Elastic Stack(ELK)
2022-12-02 20:12:43
![](https://img.aspxhome.com/file/2023/2/65182_0s.jpg)
完整的医院就诊挂号系统基于Spring MVC + Spring + MyBatis实现
2022-06-03 18:07:05
![](https://img.aspxhome.com/file/2023/0/61400_0s.png)
idea项目的左侧目录没了如何设置
2022-03-21 15:45:43
![](https://img.aspxhome.com/file/2023/1/86801_0s.jpg)
Android中的图片优化完全指南
2021-09-06 04:45:27
Java聊天室之使用Socket实现传递对象
2023-02-07 15:28:52
![](https://img.aspxhome.com/file/2023/7/68557_0s.png)
java中拼接字符串的5种方法效率对比
2022-01-08 05:46:18
![](https://img.aspxhome.com/file/2023/5/65155_0s.jpg)
Springcloud Config配置中心使用与相关介绍
2021-07-13 05:15:17
![](https://img.aspxhome.com/file/2023/2/66022_0s.png)
Android开发学习笔记之通过API接口将LaTex数学函数表达式转化为图片形式
2023-02-28 06:50:24
Go Java算法最大单词长度乘积示例详解
2022-09-27 18:16:19
C#基础知识之this关键字介绍
2022-02-08 10:59:16
详解Spring Boot 项目部署到heroku爬坑
2021-05-28 06:21:07
![](https://img.aspxhome.com/file/2023/0/106140_0s.png)
深度剖析java动态静态代理原理源码
2021-10-25 08:10:31
![](https://img.aspxhome.com/file/2023/0/132130_0s.png)
使用Android开发接入第三方原生SDK实现微信登录
2023-04-05 09:41:14
Android实现倒计时效果
2021-10-13 03:25:29
![](https://img.aspxhome.com/file/2023/3/138643_0s.jpg)
String类型传递是值传递,char[]类型传递是引用传递的实现
2022-06-01 09:33:44