文章目录
前言
Swagger 是一个用于生成、描述和调用Restful风格的接口规范。通俗的来讲,Swagger 就是将项目中所有【想要暴露的】接口展现在页面上,并且可以进行接口调用和测试的服务。
提示:以下是本篇文章正文内容,下面案例可供参考
一、导入依赖
<!--swagger2的核心包-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.9.2</version>
</dependency>
<!--swagger2的ui界面包 底层用的thymeleaf-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
二、配置类
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.ParameterBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.schema.ModelRef;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.service.Contact;
import springfox.documentation.service.Parameter;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
import java.util.ArrayList;
import java.util.List;
@Configuration
@EnableSwagger2
public class SwaggerConfig {
@Bean
public Docket createRestApi() {
List<Parameter> pars = new ArrayList<>();
pars.add(new ParameterBuilder()
.name("token")
.description("token")
.required(false)
.parameterType("header")
.modelRef(new ModelRef("string"))
.build()
);
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
//对外暴露服务的包,以controller的方式暴露,所以就是controller的包.
.apis(RequestHandlerSelectors.basePackage("cn.itsource"))
.paths(PathSelectors.any())
.build().globalOperationParameters(pars);
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("个人博客")
.description("博客系统接口文档说明")
.contact(new Contact("tom", "", "tom@itsource.cn"))
.version("1.0")
.build();
}
}
三、访问接口规范
地址:http://localhost:8080/swagger-ui.html
四、Swagger注解
@Api(value = "部门的API",description="部门相关的CRUD功能") :打在Controller对Controller做描述
@ApiOperation(value = "通过ID查询" ) :打在方法上,对方法做描述
@ApiParam(name="ID属性",required = true) :打在参数前,对参数做描述