第一步,配置pom文件。在pom文件中引入swagger的相关依赖
<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.8.0</version>
</dependency>
遇到问题可能原因: 这个问题解决办法是因为swagger依赖google的guava,而你当前项目的guava版本与之不匹配,而我因为使用当前最新的swagger2版本,我就将guava升到最新的版本,guava版本必须和spring-boot版本匹配
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>25.1-jre</version>
</dependency>
第二步,写配置文件
@Configuration
@EnableSwagger2
public class Swagger2Configuration {
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
.paths(PathSelectors.any())
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("负载均衡接口文档")
.description("slb相关接口的文档")
.termsOfServiceUrl("http://www.xxx.com")
.version("1.0")
.build();
}
}
第三步:增加相关的注解
@Api(value = "AdminUserController ")
@RestController
@RequestMapping("/admin/user")
public class AdminUserController{
@ApiOperation(value = "登录")
@ApiImplicitParams({@ApiImplicitParam(name = "userName", value = "用户名", required = true, dataType = "String"),
@ApiImplicitParam(name = "password", value = "密码", required = true, dataType = "String")})
@PostMapping("/login")
public String login(String userName, String password){
return "用户信息是 "+userName+":"+password;
}
@ApiOperation(value = "查看")
@PostMapping("/view")
public String view(){
return "请开始表演 ";
}
}
注意这里的@Api注解,写在类上的,与我们的配置类相对应。介绍一下相关的注解
@Api: 描述 Controller
@ApiIgnore: 忽略该 Controller,指不对当前类做扫描
@ApiOperation: 描述 Controller类中的 method接口
@ApiParam: 单个参数描述,与 @ApiImplicitParam不同的是,他是写在参数左侧的。如( @ApiParam(name="username",value="用户名")Stringusername)
@ApiModel: 描述 POJO对象
@ApiProperty: 描述 POJO对象中的属性值
@ApiImplicitParam: 描述单个入参信息
@ApiImplicitParams: 描述多个入参信息
@ApiResponse: 描述单个出参信息
@ApiResponses: 描述多个出参信息
@ApiError: 接口错误所返回的信息
接下就是启动项目,访问http://localhost:9000/swagger-ui.html这个地址,这里的9000是我的项目设置端口号,你打开应该是你自己的项目的端口号,就能看到相关的信息。
|