• 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;
       }
    } ```
  • 相关阅读:
    集合类--容器
    《学习之道》第十一章理解
    文件操作引出流(一)Stream和File.Create(path)
    整理文件操作(五)
    整理文件操作(四)Image.FromFile(path)
    整理文件操作(三)File.Exists(path)和new FileInfo(path).Exists
    整理文件操作(二)File和FileInfo
    整理文件操作(一)逻辑流程
    《学习之道》第十一章先理解再去记忆
    《学习之道》第十一章再次强调激发感官
  • 原文地址:https://www.cnblogs.com/cwshuo/p/14013570.html
Copyright © 2020-2023  润新知