博客
关于我
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/

    你可能感兴趣的文章
    JavaScript——原生
    查看>>
    vue动态组件与插件到底是什么?
    查看>>
    还不知道做什么项目的看这里,【总结全网】Python入门实战项目
    查看>>
    【2021.5.8 NOI模拟】贪心
    查看>>
    python3下安装jupyter kernel报错问题
    查看>>
    计算机网络参考模型,图文详解,更懂你!
    查看>>
    mybatis 简单学习
    查看>>
    操作系统学科复习图
    查看>>
    P1226 【模板】快速幂||取余运算
    查看>>
    机器学习分类算法模型评价指标
    查看>>
    LeetCode197.打家劫舍
    查看>>
    pandas(10):数据增删改
    查看>>
    第7周编程作业
    查看>>
    Codeforces Round #426 (Div. 2) The Useless Toy
    查看>>
    A simple problem HDU-2522 【数学技巧】
    查看>>
    487-3279 POJ-1022【前导0~思维漏洞】
    查看>>
    D. Timofey and rectangles[四色定理]
    查看>>
    小Z的袜子(hose) HYSBZ - 2038 [莫队算法]
    查看>>
    Problem C. Dynamic Graph Matching [状态压缩DP]
    查看>>
    ZOJ Problem Set - 2675 Little Mammoth[圆与多边形交]
    查看>>