目录
创建springboot工程
基于Spring官方骨架,创建SpringBoot工程。
基本信息描述完毕之后,勾选web开发相关依赖。
点击Finish之后,就会联网创建这个SpringBoot工程,创建好之后,结构如下:
- 注意:在联网创建过程中,会下载相关资源(请耐心等待)
删除没有用的文件和文件夹
引入knife4j和lombok的依赖
<!--引入knife4j的依赖-->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>3.0.2</version>
</dependency>
<!--引入lombok的依赖,方便后续记录日志-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
记得点击右上角引入依赖
配置swagger
新建一个config包再新建一个配置类来配置swagger
该类继承WebMvcConfigurationSupport类使后续设置的静态资源生效
再在该类上加个Configuration和Slf4j注解
接着写一个返回值为Swagger的Bean实例 Docket 的方法
/**
* 通过knife4j生成接口文档
* @return
*/
@Bean
public Docket docket(){
log.info("开始生成接口文档...");
ApiInfo apiInfo = new ApiInfoBuilder()
//标题
.title("swagger接口文档")
//版本
.version("3.0")
//简介
.description("swagger接口文档")
.build();
Docket docket = new Docket(DocumentationType.SWAGGER_2)
//分组名字
.groupName("管理端接口")
.apiInfo(apiInfo)
//enable,是否启用Swagger,默认为true,如果为false,Swagger就不能在浏览器访问
//.enable(false)
.select()
//RequestHandlerSelectors,配置要扫描接口的方式
//basePackage,指定要扫描的包,一般是用这个
//any(),扫描全部
//none(),都不扫描
//withClassAnnotation,扫描类上的注解,参数是一个注解的反射对象
//withMethodAnnotation,扫描方法上的注解
//.apis(RequestHandlerSelectors.basePackage("com.hjl.controller"))
.apis(RequestHandlerSelectors.basePackage("com.fzx.controller"))
.paths(PathSelectors.any())
.build();
return docket;
}
如果要配置多个分组就多写几个Docket实例就可以了
@Bean
public Docket docket1(){
log.info("开始生成接口文档...");
ApiInfo apiInfo = new ApiInfoBuilder()
.title("swagger接口文档")
.version("3.0")
.description("swagger接口文档")
.build();
Docket docket = new Docket(DocumentationType.SWAGGER_2)
.groupName("用户端接口")
.apiInfo(apiInfo)
.select()
.apis(RequestHandlerSelectors.basePackage("com.fzx.controller"))
.paths(PathSelectors.any())
.build();
return docket;
}
最后设置静态资源
直接copy代码拿来用就好了
/**
* 设置静态资源
* @param registry
*/
protected void addResourceHandlers(ResourceHandlerRegistry registry){
log.info("开始设置静态资源...");
registry.addResourceHandler("/doc.html").addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}
启动项目
在网页上搜“localhost:8080/doc.html”,8080是你当前项目的端口号,默认是8080;
写一个controller类来使用该接口文档
重新启动项目,再打开接口文档测试接口
状态码为200,响应成功
swagger常用注解
@Api:用在请求的类上,表示对类的说明
tags="说明该类的作用,可以在UI界面上看到的注解"
@ApiOperation:用在请求的方法上,说明方法的用途、作用
value="说明方法的用途、作用"
@ApiModel:用于响应类上,表示一个返回响应数据的信息
(这种一般用在post创建的时候,使用@RequestBody这样的场景,
请求参数无法使用@ApiImplicitParam注解进行描述的时候)
@ApiModelProperty:用在属性上,描述响应类的属性