`
cqh520llr
  • 浏览: 510020 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
文章分类
社区版块
存档分类
最新评论

swagger-ui配置

 
阅读更多
https://www.jianshu.com/p/6e5ee9dd5a61

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.bind.annotation.RequestMethod;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.builders.ResponseMessageBuilder;
import springfox.documentation.schema.ModelRef;
import springfox.documentation.service.*;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spi.service.contexts.SecurityContext;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

import java.util.ArrayList;
import java.util.List;

/**
* Swagger2的接口配置
*
* @author
*/
@Configuration
@EnableSwagger2
public class SwaggerConfig {
    /**
     * 系统基础配置
     */
    @Autowired
    private CloudConfig cloudConfig;

    /**
     * 创建API
     */
    @Bean
    public Docket createRestApi() {
        List<ResponseMessage> responseMessageList = new ArrayList<>();
        responseMessageList.add(new ResponseMessageBuilder().code(404).message("找不到资源").responseModel(new ModelRef("ApiError")).build());
        responseMessageList.add(new ResponseMessageBuilder().code(409).message("业务逻辑异常").responseModel(new ModelRef("ApiError")).build());
        responseMessageList.add(new ResponseMessageBuilder().code(422).message("参数校验异常").responseModel(new ModelRef("ApiError")).build());
        responseMessageList.add(new ResponseMessageBuilder().code(500).message("服务器内部错误").responseModel(new ModelRef("ApiError")).build());
        return new Docket(DocumentationType.SWAGGER_2)
                .globalResponseMessage(RequestMethod.GET, responseMessageList)
                .globalResponseMessage(RequestMethod.POST, responseMessageList)
                .globalResponseMessage(RequestMethod.PUT, responseMessageList)
                .globalResponseMessage(RequestMethod.DELETE, responseMessageList)
                .apiInfo(apiInfo())// 详细定制
                .select()
                .apis(RequestHandlerSelectors.basePackage("com.*****.api"))// 指定当前包路径
                .paths(PathSelectors.any())
                .build()
                .securitySchemes(securitySchemes())
                .securityContexts(securityContexts());
            }

    /**
     * 添加摘要信息
     */
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title(" - 接口文档")
                .description("描述: - 前端交互接口文档")
                .contact(new Contact(cloudConfig.getName(), null, null))
                .version("版本号:" + cloudConfig.getVersion())
                .build();
    }

    private List<ApiKey> securitySchemes() {
        //设置请求头信息
        List<ApiKey> result = new ArrayList<>();
        ApiKey apiKey = new ApiKey("Authorization", "Authorization", "header");
        result.add(apiKey);
        return result;
    }

    private List<SecurityContext> securityContexts() {
        //设置需要登录认证的路径
        List<SecurityContext> result = new ArrayList<>();
        result.add(getContextByPath("/*/.*"));
        return result;
    }

    private SecurityContext getContextByPath(String pathRegex){
        return SecurityContext.builder()
                .securityReferences(defaultAuth())
                .forPaths(PathSelectors.regex(pathRegex))
                .build();
    }

    private List<SecurityReference> defaultAuth() {
        List<SecurityReference> result = new ArrayList<>();
        AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
        AuthorizationScope[] authorizationScopes = new AuthorizationScope[1];
        authorizationScopes[0] = authorizationScope;
        result.add(new SecurityReference("Authorization", authorizationScopes));
        return result;
    }

}
分享到:
评论

相关推荐

    spring boot 项目中swagger-ui配置代码

    实际运行项目中,swagger-ui配置代码,主要实现security配置、项目注释注解、描述、版本等信息 1、项目使用swagger-ui版本 &lt;groupId&gt;io.springfox &lt;artifactId&gt;springfox-swagger2 &lt;version&gt;2.9.2 ...

    springmvc与swagger swagger-ui 集成demo

    4. **暴露Swagger-UI**:在Spring MVC的配置中,设置一个映射路径,使得Swagger-UI可以通过这个路径访问。例如,通常设置为`/v2/api-docs`。 5. **测试和使用**:启动应用后,可以通过浏览器访问Swagger-UI的URL...

    swagger-ui

    Swagger UI 是一个强大的工具,专为开发者设计,用于交互式地探索和测试RESTful API。这个工具基于Swagger规范,能够帮助开发人员通过直观的用户界面理解、操作和验证API。"swagger-ui"这个标签直接指向了这个关键...

    前端项目-swagger-ui.zip

    2. **配置Swagger UI**:在项目中引入Swagger UI的源码,并设置指向你的Swagger定义文件的URL。 3. **运行并测试**:启动你的应用程序,Swagger UI将根据定义文件自动生成文档,并允许你直接进行接口测试。 通过...

    springmvc集成swagger-ui

    Swagger-UI 是一个流行的工具,它允许开发者通过用户友好的界面来交互、测试和文档化RESTful API。这篇博客将深入探讨如何将Swagger-UI 集成到Spring MVC项目中,以增强API的可发现性和易用性。 首先,集成Swagger-...

    swagger-ui-master

    2. `src`目录:包含了Swagger UI的源代码,包括React组件、样式表、配置文件等。如果你需要自定义Swagger UI的外观或功能,这部分代码是主要的修改对象。 3. `package.json`文件:这是Node.js项目的配置文件,列出...

    swagger-ui.zip

    在这个"swagger-ui.zip"压缩包中,我们可以预见到包含的是Swagger UI的相关资源,可能是用于集成到SpringBoot应用中的一个配置或演示示例。 Swagger SpringBoot整合是指将Swagger的功能集成到SpringBoot项目中,以...

    swagger-ui静态资源

    - `index.html`:这是Swagger UI的主入口文件,它引入了其他必要的CSS、JavaScript资源,以及配置API接口的JSON文件(通常是`swagger.json`或`openapi.yaml`)。 - `swagger-ui.js`和`swagger-ui.min.js`:这两个...

    swagger-bootstrap-ui

    4. **集成与部署**:Swagger Bootstrap UI可以轻松集成到现有的API服务中,通常只需配置服务器指向包含Swagger定义文件的URL。这使得开发团队能够在不改变后端代码的情况下,提升API文档的可视化效果。此外,这个...

    swagger-ui-master.zip

    2. **配置文件**(可能包含`config.json`):这个文件用于设置Swagger UI的行为,如默认加载的API定义、展示样式等。 3. **示例文件**(可能有`petstore.yaml`或`petstore.json`):Swagger UI通常会提供一个示例...

    swagger-ui-master.rar

    这个压缩包包含了Swagger UI项目的最新代码,通常包含源码文件、资源文件、配置文件等,供开发者进行定制和集成到自己的项目中。 描述中提到Swagger的主要作用是作为RESTful接口的文档生成器和功能测试工具。在开发...

    Swagger 自定义UI界面.doc

    然后,我们需要在配置文件中启用 Swagger: ```java @Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) ....

    swagger-ui 的集成文件

    3. 配置 Swagger UI,指向你的 OpenAPI 定义文件,这通常通过修改 `index.html` 文件中的配置项完成。 4. 访问部署后的 Swagger UI URL,你应该能看到你的 API 文档和测试环境。 Swagger UI 不仅适用于开发阶段,也...

    Laravel开发-swagger-ui-lumen

    你可以根据需求调整 Swagger-UI 的样式或配置。修改 `public/swagger-ui-lumen-master/dist/index.html` 文件,添加自己的 CSS 或 JS 代码。 2. **分组和版本控制** 使用 `@OA\Info` 注解可以在文档中定义 API 的...

    修复页面无法展开问题springfox-swagger-ui-2.6.1.jar

    swagger-ui在正常配置后,使用时,页面无法展开,只能通过全部来展开,修复后,可以正常点击打开,希望能帮主大家

    Swagger-UI 基于REST的API测试/文档类插件

    熟悉这个规范将帮助你更好地理解和编辑Swagger配置文件,从而更好地利用Swagger-UI。 在实际开发中,Swagger-UI通常与Swagger-Codegen结合使用,后者可以根据OpenAPI规范自动生成客户端SDK,便于多种编程语言的集成...

Global site tag (gtag.js) - Google Analytics