在调试后端接口或者给前端API接口时,以Swagger的形式能节约一定的时间,记录下
1、添加依赖
<!-- 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.9.2</version>
</dependency>
2、增加配置类
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;
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket createRestApi(){
return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.any())
.paths(PathSelectors.any()).build();
}
private ApiInfo apiInfo(){
return new ApiInfoBuilder()
.title("Mortred API Doc")
.description("This is a restful api document of Mortred.")
.version("1.0")
.build();
}
}
Swagger页面与应用端口一致,地址http://localhost:8080/swagger-ui.html
3、常用的注解
@Api:用在请求的类上,说明该类的作用,@Api(tags="类的说明")
@ApiOperation:用在请求的方法上,说明方法的作用,@ApiOperation(value="登陆接口",notes="用户名、手机号、邮箱任一登陆")
@ApiImplicitParams:用在请求的方法上,包含一组参数说明
@ApiImplicitParams({
@ApiImplicitParam(name="username",value="用户名/手机号/邮箱",required=true,paramType="form"),
@ApiImplicitParam(name="password",value="密码",required=true,paramType="form")
})
@ApiResponses:用于请求的方法上,代表一组响应定义
@ApiOperation(value = "登陆接口",notes = "用户名、手机号、邮箱任一登陆")
@ApiResponses({
@ApiResponse(code=400,message="请求参数错误"),
@ApiResponse(code=403,message="禁止访问")
})