SpringBoot-整合Swagger
Swagger
-
号称世界上最流行的API框架
-
Restful Api 文档在线自动生成器 => API 文档 与API 定义同步更新
-
直接运行,在线测试API
-
支持多种语言 (如:Java,PHP等)
-
官网:https://swagger.io/
1.导入maven依赖
-
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 -->
-
<dependency>
-
<groupId>io.springfox</groupId>
-
<artifactId>springfox-swagger2</artifactId>
-
<version>2.9.2</version>
-
</dependency>
-
<!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger-ui -->
-
<dependency>
-
<groupId>io.springfox</groupId>
-
<artifactId>springfox-swagger-ui</artifactId>
-
<version>2.9.2</version>
-
</dependency>
2.编写Swagger配置类
-
@Configuration
-
@EnableSwagger2
-
public class SwaggerConfig {
-
-
-
}
访问测试 :http://localhost:8080/swagger-ui.html ,可以看到swagger的界面;
扩展: 推荐不要用过高的swagger版本,会出现兼容性问题,如果这里出现空指针问题可以把Springboot版本降到2.5.5或者在yaml里面添加配置
-
spring:
-
mvc:
-
pathmatch:
-
matching-strategy: ant_path_matcher
3.Swagger配置
基本配置
-
import org.springframework.context.annotation.Bean;
-
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;
-
-
import javax.servlet.http.HttpServletRequest;
-
import javax.servlet.http.HttpServletResponse;
-
import javax.servlet.http.HttpSession;
-
-
@Configuration
-
@EnableSwagger2
-
public class SwaggerConfig {
-
@Bean //配置docket以配置Swagger具体参数
-
public Docket productDocket(){
-
return new Docket(DocumentationType.SWAGGER_2)
-
.enable(true)//配置是否启用Swagger,如果是false,在浏览器将无法访问
-
.pathMapping("/")
-
.select()// 通过.select()方法,去配置扫描接口,RequestHandlerSelectors配置如何扫描接口
-
//配置需要扫描的包
-
.apis(RequestHandlerSelectors.basePackage("com.wjc.controller"))
-
//配置扫描的路径,我设置为所有的路径
-
.paths(PathSelectors.any())
-
.build()
-
.ignoredParameterTypes(HttpSession.class,HttpServletRequest.class,HttpServletResponse.class) //忽略参数
-
.apiInfo(apiInfo()); //关联上apiInfo()
-
}
-
public ApiInfo apiInfo(){
-
return new ApiInfoBuilder()
-
.title("接口文档") //标题
-
.description("测试接口文档") //描述
-
.version("1.0").build();
-
}
-
-
}
4.Swagger分组
要分组开发,就写多个Docket,可以在每个Docket里面扫描不同的包,实现分工
-
-
public Docket docket1(){
-
return new Docket(DocumentationType.SWAGGER_2).groupName("A");
-
}
-
-
-
public Docket docket2(){
-
return new Docket(DocumentationType.SWAGGER_2).groupName("B");
-
}
5.Swagger常用注解
实体类注解
@ApiModel(value = "") //用在类上
@ApiModelProperty("") //用在属性上
-
@Data
-
@AllArgsConstructor
-
@NoArgsConstructor
-
@ApiModel(value = "测试实体类")
-
public class Dept {
-
@ApiModelProperty("部门id")
-
private Integer deptno;
-
@ApiModelProperty("部门姓名")
-
private String dname;
-
@ApiModelProperty("部门职责")
-
private String db_source;
-
}
改注解修改的是Swagger Models里的注释
Controller类注解
@Api(tags = "") //类注释
@ApiOperation(value = "") //方法注释
-
-
-
public class DeptController {
-
-
private DeptMapper deptMapper;
-
-
-
-
-
public List<Dept> queryDeptList(){
-
List<Dept> depts = deptMapper.queryDeptList();
-
for (Dept dept : depts) {
-
System.out.println(dept);
-
}
-
return depts;
-
}
-
-
}
扩展:如果觉得它原生的页面不好看的话,可以换皮肤哦
导入包
-
<!-- 引入swagger-bootstrap-ui包 /doc.html-->
-
<dependency>
-
<groupId>com.github.xiaoymin</groupId>
-
<artifactId>swagger-bootstrap-ui</artifactId>
-
<version>1.9.1</version>
-
</dependency>
访问 http://localhost:8080/doc.html
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhhacjkf
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13