<dependency>
<groupId>io.springfoxgroupId>
<artifactId>springfox-swagger2artifactId>
<version>2.9.2version>
dependency>
<dependency>
<groupId>io.springfoxgroupId>
<artifactId>springfox-swagger-uiartifactId>
<version>2.9.2version>
dependency>
@RestController //Bean中的注解
public class controllerTest {
//Get请求
@GetMapping("fzkGet")
public String fzkGet(){
return "fzkGet";
}
//Post请求
@PostMapping("fzkPost")
public String fzkPost(){
return "fzkPost";
}
//Put请求
@PutMapping("fzkPut")
public String fzkPut(){
return "fzkPut";
}
//Delete请求
@DeleteMapping("fzkDelete/{id}")
public String fzkDelete(@PathVariable String id){
return "fzkDelete";
}
}
@Configuration //配置类
@EnableSwagger2 //swagger注解
public class SwaggerConfig {
}
Controller类 和 Swagger类 都在 com.itfzk 包下(com.itfzk包是自己定义的包)
@SpringBootApplication
@ComponentScan(basePackages = {"com.itfzk"}) //开启注解扫描
public class Test100Application {
public static void main(String[] args) {
SpringApplication.run(Test100Application.class, args);
}
}
地址: http://localhost:8080/swagger-ui.html (localhost:8080是自己的ip地址和端口号,swagger-ui.html是显示的页面)
1、Swagger实例Bean是Docket,通过配置Docket实例来配置Swaggger
2、通过apiInfo()属性配置文档信息
@Configuration //配置类
@EnableSwagger2 //swagger注解
public class SwaggerConfig {
@Bean //配置docket以配置Swagger具体参数
public Docket webApiConfig(){
return new Docket(DocumentationType.SWAGGER_2)
.groupName("fzk") //分组信息
.apiInfo(webApiInfo());
}
//配置文档信息
private ApiInfo webApiInfo(){
//联系人信息
Contact contact = new Contact("fzk", "https://blog.csdn.net/qq_44002865", "[email protected]");
return new ApiInfo(
"Swagger测试", //标题
"演示如何配置使用Swagger", //描述
"v1.0", //版本
"urn:tos", //服务条件
contact, //联系人信息
"Apache 2.0", //许可
"http://www.apache.org/licenses/LICENSE-2.0", //许可链接
new ArrayList<>()); //扩展
}
}
构建Docket时通过 select() 方法配置来扫描接口
使用方法
举例
@Bean //配置docket以配置Swagger具体参数
public Docket webApiConfig(){
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(webApiInfo())
.select() // 通过.select()方法,配置扫描接口,RequestHandlerSelectors配置扫描接口
.apis(RequestHandlerSelectors.basePackage("com.itfzk.test100.controller")).build();
}
使用方法
举例
@Bean //配置docket以配置Swagger具体参数
public Docket webApiConfig(){
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(webApiInfo())
.select().paths(PathSelectors.ant("/fzk/**")).build();
}
通过 enable() 方法配置是否启用swagger,如果是false,swagger将不能在浏览器中访问了
开发和测试的时候开启,项目运行时就不启动
测试不启用 Swagger
@Bean //配置docket以配置Swagger具体参数
public Docket webApiConfig(){
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(webApiInfo())
.enable(false); //是否启用swagger,不启用
}
如果没有配置分组,默认是default
通过 groupName() 方法即可配置分组
@Configuration //配置类
@EnableSwagger2 //swagger注解
public class SwaggerConfig {
@Bean //配置docket以配置Swagger具体参数
public Docket webApiConfig(){
return new Docket(DocumentationType.SWAGGER_2)
.groupName("fzk") //配置分组
.apiInfo(webApiInfo());
}
}
配置多个分组只需要配置多个docket
@Configuration //配置类
@EnableSwagger2 //swagger注解
public class SwaggerConfig {
@Bean //配置docket以配置Swagger具体参数
public Docket webApiConfig(){
return new Docket(DocumentationType.SWAGGER_2)
.groupName("fzk")
.apiInfo(webApiInfo());
}
@Bean //配置docket以配置Swagger具体参数
public Docket webApiConfig1(){
return new Docket(DocumentationType.SWAGGER_2)
.groupName("fzk1")
.apiInfo(webApiInfo1());
}
@Bean //配置docket以配置Swagger具体参数
public Docket webApiConfig2(){
return new Docket(DocumentationType.SWAGGER_2)
.groupName("fzk2")
.apiInfo(webApiInfo2());
}
}
用于 Controller 类上;表示标识这个类是swagger的资源
@RestController
@Api(tags = "测试Swagger")
public class controllerTest {
}
用于Controller方法;表示一个http请求的操作
@RestController
@Api(tags = "测试Swagger")
public class controllerTest {
@ApiOperation("查询Swagger")
@GetMapping("/find")
public String find() {
return "Swagger";
}
}
用于方法,参数,字段说明;表示对参数的添加元数据(说明或是否必填等)
@RestController
@Api(tags = "测试Swagger")
public class controllerTest {
@ApiOperation("查询Swagger")
@PostMapping("/findById")
public String find(@ApiParam(name = "id", value = "用户id", required = true) String id) {
return "Swagger";
}
}
@ApiModel()
@ApiModelProperty()
@Data
@ApiModel(value = "User对象", description = "用户")
public class User {
@ApiModelProperty(value = "用户名")
private String userName;
@ApiModelProperty(value = "密码")
private String password;
}