Swagger是全球最大的OpenAPI规范(OAS)API开发工具框架,支持从设计和文档到测试和部署的整个API生命周期的开发。简单点说,就是按照swagger的规范书写接口,swagger会自动帮你生成接口文档、以及接口的测试

将swagger整合到spring boot项目中

  1、配置依赖的包

        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.4.0</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.4.0</version>
        </dependency>

  2、swagger配置文件

@Configuration
@EnableSwagger2
public class SwaggerConfiguration {

    /**
     * swagger2的配置文件,这里可以配置swagger2的一些基本的内容,比如扫描的包等等
     * @return
     */
    @Bean
    public Docket createRestfulApi(){
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select()
               // .apis(RequestHandlerSelectors.basePackage("com.lance.learn.springbootswagger.controller"))  //暴露接口地址的包路径
                .paths(PathSelectors.any())
                .build();
    }

    /**
     * 构建 api文档的详细信息函数,注意这里的注解引用的是哪个
     * @return
     */
    private ApiInfo apiInfo(){
        return new ApiInfoBuilder()
                //页面标题
                .title("Spring Boot 测试使用 Swagger2 构建RESTful API")
                //创建人
                .contact(new Contact("test", "https://www.cnblogs.com", "[email protected]"))
                //版本号
                .version("2.0")
                //描述
                .description("API 描述")
                .build();
    }

}

3、对于接口的配置--基于注解

  @Api()用于类:表示标识这个类是swagger的资源 不标识也无所谓

@Api(value="用户controller",tags={"用户操作接口"})

  @ApiOperation()用于方法; 表示一个http请求的操作  不标识也无所谓

   @ApiOperation(value="根据用户编号获取用户姓名", notes="test: 仅1和2有正确返回")

  @ApiImplicitParam() 用于方法 表示单独的请求参数 

@ApiImplicitParam(paramType="query", name = "userNumber", value = "用户编号", required = true, dataType = "Integer")

  @ApiImplicitParams() 用于方法,包含多个 @ApiImplicitParam

    @ApiImplicitParams({
        @ApiImplicitParam(paramType="query", name = "userId", value = "用户ID", required = true, dataType = "Integer"),
        @ApiImplicitParam(paramType="query", name = "password", value = "旧密码", required = true, dataType = "String"),
        @ApiImplicitParam(paramType="query", name = "newPassword", value = "新密码", required = true, dataType = "String")
    })

 4、效果展示

   

  
01-16 16:17