1.新建springboot项目
2.引入maven依赖
<!--swagger-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version> 2.9.2</version>
</dependency>
<!-- swagger-ui-->
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.9.2</version>
</dependency>
注意:swagger版本可能和springboot版本有冲突导致项目跑不起来,降低springboot版本即可
3.编写swagger配置类(创建docket 配置apiinfo) swaggerconfig
@Configuration
@EnableSwagger2 //开启swagger2
public class SwaggerConfig {
}
其实到这里我们就可以通过http://localhost:8080/swagger-ui.html#/访问swagger文档了,但是我们在工作中会用到swagger的其他配置
package com.example.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
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 //开启swagger2
public class SwaggerConfig {
//配置了swagger的Docket的bean实例
@Bean
public Docket docket(){
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo());
}
//配置swagger信息 apiinfo
private ApiInfo apiInfo(){
return new ApiInfoBuilder()
.title("可心的swagger文档")
.description("我想认真读一本书")
.version("v3.0")
.termsOfServiceUrl("https://blog.csdn.net/weixin_58993861?type=blog")
.contact("程序员")
.build();
}
}

注:apiinfo其实就是修改了原有的配置 这是原有的默认的apiinfo配置

我们可以再次访问http://localhost:8080/swagger-ui.html#/ 看看和之前有什么变化
4.编写swagger配置类(定义扫描接口 定义项目环境 ) swaggerconfig
package com.example.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.env.Environment;
import org.springframework.core.env.Profiles;
import org.springframework.web.bind.annotation.GetMapping;
import springfox.documentation.builders.ApiInfoBuilder;
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 //开启swagger2
public class SwaggerConfig {
//配置了swagger的Docket的bean实例
@Bean
public Docket docket(Environment environment){
//设置要使用的环境中
Profiles profiles = Profiles.of("dev");
//通过方法 判断自己项目所使用的的环境 在不在这里的指定的环境里 如果在就能访问的到 不在就访问不到
boolean flag = environment.acceptsProfiles(profiles);
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.enable(flag)//通过方法 判断自己项目所使用的的环境 在不在这里的指定的环境里 如果在就能访问的到 不在就访问不到
.select()//选择
//可以扫描 any none 指定包 指定类 指定方法
.apis(RequestHandlerSelectors.withMethodAnnotation(GetMapping.class))
// .paths(PathSelectors.ant("com.example.controller/**")) 过滤不需要扫描的路径
.build();//创建
}
//配置swagger信息 apiinfo
private ApiInfo apiInfo(){
return new ApiInfoBuilder()
.title("可心的swagger文档")
.description("我想认真读一本书")
.version("v3.0")
.termsOfServiceUrl("https://blog.csdn.net/weixin_58993861?type=blog")
.contact("程序员")
.build();
}
}
定义扫描接口:要定义扫描接口 就要选择接口创建 select api build 调用这三个方法就行了
定义项目环境:项目启动扫描的是默认环境,我这里默认环经指向了dev环境,通过方法 判断自己项目所使用的的环境 在不在这里的指定的环境里 如果在就能访问的到 不在就访问不到
5.编写swagger配置类(配置多个docket 对实体类参数等进行中文注释 进行接口的测试) swaggerconfig
配置多个docket:在实际开发中一个项目就一个swagger文档,每个人负责自己的模块所以每个人只需要负责好自己的docket就行了。
这里配置了三个docket
@Bean
public Docket docket1(){
return new Docket(DocumentationType.SWAGGER_2).groupName("张三部分");
}
@Bean
public Docket docket2(){
return new Docket(DocumentationType.SWAGGER_2).groupName("李四部分");
}
//配置了swagger的Docket的bean实例
@Bean
public Docket docket(Environment environment){
//设置要使用的环境中
Profiles profiles = Profiles.of("dev");
//通过方法 判断自己项目所使用的的环境 在不在这里的指定的环境里 如果在就能访问的到 不在就访问不到
boolean flag = environment.acceptsProfiles(profiles);
return new Docket(DocumentationType.SWAGGER_2)
.groupName("DerKing部分")
.apiInfo(apiInfo())
.enable(flag)//通过方法 判断自己项目所使用的的环境 在不在这里的指定的环境里 如果在就能访问的到 不在就访问不到
.select()//选择
//可以扫描 any none 指定包 指定类 指定方法
.apis(RequestHandlerSelectors.withMethodAnnotation(GetMapping.class))
// .paths(PathSelectors.ant("com.example.controller/**")) 过滤不需要扫描的路径
.build();//创建
}
swagger中选择自己的部分就行了

对实体类参数等进行中文注释:
@ApiModel("用户实体类")
public class User {
@ApiModelProperty("用户名")
public String username;
@ApiModelProperty("密码")
public String password;
}

@ApiOperation("写在controller的方法上的")
@GetMapping(value = "/hello2")
public String hello2(@ApiParam("用户名") String username, @ApiParam("密码") String password){
return password + username;
}
@ApiOperation("写在controller的方法上的")
@GetMapping(value = "/hello2")
public String hello2(@ApiParam("用户名") String username, @ApiParam("密码") String password){
return password + username;
}

进行接口的测试:
点击try it out 测试接口就可以了。
相关文章
暂无评论...
