• Swagger的配置(注:配合资源路径一起使用)


    一、导入依赖

        <!--Swagger2依赖-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>${swagger2.version}</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>${swagger2.version}</version>
        </dependency>
    

    二、添加配置

    /**
    * @Author: cws
    * @Date: 13:20 2020/11/19
    * @Description:
    * @Version v1.0
    */
    @Configuration
    @EnableSwagger2
    public class SwaggerConfig {
    
       /**
        * 创建API
        */
       @Bean
       public Docket createRestApi() {
           return new Docket(DocumentationType.SWAGGER_2)
                   // 用来创建该API的基本信息,展示在文档的页面中(自定义展示的信息)
                   .apiInfo(apiInfo())
                   // 设置哪些接口暴露给Swagger展示
                   .select()
                   // 扫描所有有注解的api,用这种方式更灵活
                   .apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                   // 扫描指定包中的swagger注解
                   // .apis(RequestHandlerSelectors.basePackage("com.ruoyi.project.tool.swagger"))
                   // 扫描所有 .apis(RequestHandlerSelectors.any())
                   .paths(PathSelectors.any())
                   .build()
                   /* 设置安全模式,swagger可以设置访问token */
                   .securitySchemes(securitySchemes())
                   .securityContexts(securityContexts());
       }
    
       /**
        * 添加摘要信息
        */
       private ApiInfo apiInfo() {
           // 用ApiInfoBuilder进行定制
           return new ApiInfoBuilder()
                   // 设置标题
                   .title("标题:公司官网系统_接口文档")
                   // 描述
                   .description("描述:用于管理公司的发布信息,具体包括XXX,XXX模块...")
                   // 作者信息
                   .contact(new Contact("cws", null, null))
                   // 版本
                   .version("版本号:V.1")
                   .build();
       }
    
       /**
        * 安全模式,这里指定token通过Authorization头请求头传递
        */
       private List<ApiKey> securitySchemes() {
           List<ApiKey> apiKeyList = new ArrayList<>();
           apiKeyList.add(new ApiKey("Authorization", "Authorization", "header"));
           return apiKeyList;
       }
    
       /**
        * 安全上下文
        */
       private List<SecurityContext> securityContexts() {
           List<SecurityContext> securityContexts = new ArrayList<>();
           securityContexts.add(
                   SecurityContext.builder()
                           .securityReferences(defaultAuth())
                           .forPaths(PathSelectors.regex("^(?!auth).*$"))
                           .build());
           return securityContexts;
       }
    
       /**
        * 默认的安全上引用
        */
       private List<SecurityReference> defaultAuth() {
           AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
           AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
           authorizationScopes[0] = authorizationScope;
           List<SecurityReference> securityReferences = new ArrayList<>();
           securityReferences.add(new SecurityReference("Authorization", authorizationScopes));
           return securityReferences;
       }
    } ```
  • 相关阅读:
    编程之美 2.3寻找发帖‘水王’ 扩展问题
    编程之美:1.12 扩展问题 解答与思考
    编程之美:1.9高效率安排见面会 图的m着色问题 回溯法
    研究生毕业课题怎么确定(转)
    图模型的统计推断 inference in graphical models(马尔科夫链的推断)
    微信js-sdk注意事项
    bootstrap-material-design-个人总结
    前端页面优化
    Material Design
    马克飞象
  • 原文地址:https://www.cnblogs.com/cwshuo/p/14013570.html
Copyright © 2020-2023  润新知