1、引入依赖
<!-- swagger 依赖jar -->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
2、添加swagger配置文件
package com.xja.config;
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.service.Contact;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@EnableSwagger2
@Configuration
public class Swagger2Config {
@Bean
public Docket createRestApi() {
/**
// 添加请求参数,我们这里把token作为请求头部参数传入后端
ParameterBuilder parameterBuilder = new ParameterBuilder();
List<Parameter> parameters = new ArrayList<>();
parameterBuilder.name("token").description("令牌")
.modelRef(new ModelRef("string")).parameterType("header").required(false).build(); //header中的token参数非必填,传空也可以
parameters.add(parameterBuilder.build());
*/
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
//为当前包路径
.apis(RequestHandlerSelectors.basePackage("edu.xja.controller"))
.paths(PathSelectors.any())
.build();
//.build().globalOperationParameters(parameters);
}
//构建 api文档的详细信息函数
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
//页面标题
.title("Spring Boot集成Swagger2构建RESTful API")
//创建人
.contact(new Contact("Thomas", "http://www.nynu.edu.cn", "thomas@163.com"))
//版本号
.version("1.9")
//描述
.description("演示系统API描述")
.build();
}
}
注意事项:上面代码Contact 类引入的是:
import springfox.documentation.service.Contact;
代码解释:
Ø 通过@EnableSwagger2 注解开启swagger2
Ø 要配置一个Docket Bean
Ø 在.apis 方法中配置扫描controller的位置
Ø apinInfo方法中设置文档的基本信息,比如标题、联系人、版本、描述等
打开浏览器,地址栏中输入:localhost:8888/swagger-ui.html
注:若启动不了,尝试在application启动类上加入注解@EnableSwagger2
3、Swagger主要注解
3.1、@Api
@Api 用在类上,说明该类的作用。可以标记一个Controller类做为swagger 文档资源
最重要是属性是tags,示例:
@Api(tags ={"学生管理Api"})
3.2、@ApiModel
@ApiModel用在类上,表示对类进行说明,用于实体类中的参数接收说明
最重要的属性如下,示例:
@ApiModel(value="学生实体类",description = "学生实体类信息")
3.3、@ApiModelProperty
@ApiModelProperty()用于字段,表示对model属性的说明最重要的属性,示例:
@ApiModelProperty(value="学生姓名",required = true)
3.4、@ApiParam
@ ApiParam用于Controller中方法的参数说明
3.5、@ApiOperation
@ApiOperation用在Controller里的方法上,说明方法的作用,每一个接口的定义,使用方式如下:
@ApiOperation(value="根据主键获取学生信息",notes="输入学生主键,获取学生信息")
3.6、@ApiResponse和ApiResponses
@ApiImplicitParams({@ApiImplicitParam(value="主键ID",name="id")})