博客
关于我
Swagger2 设置全局token
阅读量:527 次
发布时间:2019-03-09

本文共 3146 字,大约阅读时间需要 10 分钟。

在项目中集成Swagger2 tool 对 api 文档进行定义 和 电子文档 生成,是一个非常实用的方法。以下 将 分步骤解释 如何 配置 Swagger2 在 Spring Boot 项目 中。

第一步:添加 Swagger 依赖项

确保 项目 中添加了 必要的 Swagger2 依赖。以下 是具体的 dependency 配置:

io.springfox
springfox-swagger2
2.8.0
io.springfox
springfox-swagger-ui
2.8.0

第二步:配置 Swagger2

创建一个配置类,使用 Spring Boot 的 @Configuration 注注和 @EnableSwagger2 实现 Swagger2 的支持。以下 是配置类的代码:

import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.Profile;import springfox.documentation.builders.ApiInfoBuilder;import springfox.documentation.builders.PathSelectors;import springfox.documentation.builders.RequestHandlerSelectors;import springfox.documentation.service.*;import springfox.documentation.spi.DocumentationType;import springfox.documentation.spi.service.contexts.SecurityContext;import springfox.documentation.spring.web.plugins.Docket;import io.swagger.annotations.EnableSwagger;@Configuration@EnableSwagger@Profile({"dev", "test"})public class SwaggerConfig {    @Bean    public Docket restApiDocumentation() {        return new Docket(DocumentationType.SWAGGER_2)                .enable(true)                .apiInfo(apiInfo())                .select()                .apis(RequestHandlerSelectors.basePackage("com.xzh.controller"))                .paths(PathSelectors.any())                .build()                .securitySchemes(securitySchemes())                .securityContexts(securityContexts());    }    private List
securitySchemes() { List
apiKeyList = new ArrayList<>(); apiKeyList.add(new ApiKey("token", "token", "header")); return apiKeyList; } private List
securityContexts() { List
securityContexts = new ArrayList<>(); SecurityContext securityContext = SecurityContext.builder() .securityReferences(defaultAuth()) .forPaths(PathSelectors.regex("^(?!auth).*$")) .build(); securityContexts.add(securityContext); return securityContexts; } private List
defaultAuth() { AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything"); List
authorizationScopes = Arrays.asList(authorizationScope); List
securityReferences = new ArrayList<>(); securityReferences.add(new SecurityReference("token", authorizationScopes)); return securityReferences; } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("My API") .contact(new Contact("张三", "", "zhangsan@example.com")) .version("1.0.0") .build(); }}

注意事项:

  • 依赖项版本: 确认 Swagger2 及其相关组件的版本与项目兼容。

  • Profile 配置: 在 @Profile 中指定适用的环境,如开发环境和测试环境。

  • Base Package 配置: 在 RequestHandlerSelectors.basePackage("com.xzh.controller") 中,将 Swagger2 扩展应用到指定的包路径。

  • 使用后的效果:

    当 应用在 enable 后,默认会生成一个漂亮的 API 文档,部署在 /swagger 路径,内容 包括所有在指定包路径下被识别的控制器类和其相关的端点。

    完成以上步骤后,您的项目就可以playfully 测试和发文档了。

    转载地址:http://yaxiz.baihongyu.com/

    你可能感兴趣的文章