Swagger

Swagger是使用OpenAPI规范(OAS)开发API的最广泛使用的工具生态系统。Swagger由开源和专业工具组成,满足几乎所有的需求和用例。

一、配置Swagger

添加依赖
// web依赖
<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
</dependency>

//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>
添加配置类
@Configuration
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket createRestApi()
    {
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("")
                .apiInfo(apiInfo())
                .select()
                
                // 扫描方式1.指定当前包路径
                .apis(RequestHandlerSelectors.basePackage("包名"))
                // 扫描方式2:扫描所有有类注解的api
                .apis(RequestHandlerSelectors.withClassAnnotation(Api.class))
                // 扫描方式3:扫描所有有方法注解的api,用这种方式更灵活
                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                // 扫描方式2:扫描所有
                .apis(RequestHandlerSelectors.any())

                .paths(PathSelectors.any())
                .build();
    }

    public ApiInfo apiInfo()
    {
        return new ApiInfoBuilder()
                .title("接口")
                .description("接口说明")
                .version("1.0")
                .build();
    }
}
使用
// 控制层
@Api(tags = "基础模块")
@RestController
@RequestMapping("/base")
public class BaseController {
	
	@ApiOperation(value = "查询")
    @RequestMapping(value = "/findList", method = RequestMethod.POST)
    public RestResponse findList(@RequestBody Param param)
    {
        return RestResponse.ok();
    }
}
访问地址

localhost:8080/swagger-ui.html

将接口文档暴露在外网会出现一定的安全问题,此时我们需要给Swagger文档配置登录密码。

二、配置Swagger登录密码

添加依赖
<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>swagger-bootstrap-ui</artifactId>
    <version>1.9.3</version>
</dependency>
更新配置类
@Configuration
@EnableSwagger2
@EnableSwaggerBootstrapUI 	//添加注解
public class SwaggerConfig {
}
添加启动类注解

@EnableSwagger2

配置yaml文件
swagger:
  basic:
    enable: true 	// 启用
    username: 用户名
    password: 密码
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐