程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在Swagger UI / Spring Boot中支持多个路径映射大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决在Swagger UI / Spring Boot中支持多个路径映射?

开发过程中遇到在Swagger UI / Spring Boot中支持多个路径映射的问题如何解决?下面主要结合日常开发的经验,给出你关于在Swagger UI / Spring Boot中支持多个路径映射的解决方法建议,希望对你解决在Swagger UI / Spring Boot中支持多个路径映射有所启发或帮助;

最后,我按照以下代码段的URL将这些API分为几类,为设置创建三个组,为产品创建另一个,最后一个包含除设置和产品之外的所有其他文档。

    @Bean
    public Docket swaggerSetTingsAPI() {
        return new Docket(documentationType.SWAGGER_2)
                .groupname("SetTings")
                .SELEct()
                .APIs(requestHandlerSELEctors.basePackage("com.xyz"))
                .paths(regex("/secure/API/v1/setTings/.*"))
                .build()
                .APIInfo(new APIInfoBuilder().version("1.0").title("SetTings API").build())
                .globalOperationParameters(operationParameters());
    }

    @Bean
    public Docket swaggerProductAPI() {
        return new Docket(documentationType.SWAGGER_2)
                .groupname("Product")
                .SELEct()
                .APIs(requestHandlerSELEctors.basePackage("com.xyz.modules.v1"))
                .paths(productPaths())
                .build()
                .APIInfo(new APIInfoBuilder().version("1.0").title("Product API").build())
                .globalOperationParameters(operationParameters());
    }

    @Bean
    public Docket swaggerModuleAPI() {
        return new Docket(documentationType.SWAGGER_2)
                .groupname("Others")
                .SELEct()
                .APIs(requestHandlerSELEctors.basePackage("com.xyz.modules.v1"))
                .paths(postPaths())
                .build()
                .APIInfo(new APIInfoBuilder().version("1.0").title("Other Modules API").build())
                .globalOperationParameters(operationParameters());
    }

      private PreDicate<String> postPaths() {
        return or(regex("^(?=\\/secure\\/API\\/v1\\/)(?!.*(setTings|products)).+\\/.*"));
    }

解决方法

我在Spring Boot(版本1.5.9.RELEASE)项目中使用了swagger
2.0。Swagger可以正常工作,但是现在文档有数百个api,我想重定向文档到不同的URL。

@Configuration
@EnableSwagger2
public class SwaggerConfig {
    @Bean
    public Docket postsApi() {
        return new Docket(DocumentationType.SWAGGER_2).groupName("public-api")
                .apiInfo(apiInfo()).SELEct().paths(postPaths()).build();
    }

    private PreDicate<String> postPaths() {
        return or(regex("/api/posts.*"),or(regex("/api/.*"),regex("/secure/api/.*")));
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder().title("Swagger API")
                .description("Swagger Integration with Spring Boot")
                .termsOfserviceUrl(null)
                .license(null)
                .licenseUrl(null).version("1.0").build();
    }
}

请提出任何建议。提前致谢。

大佬总结

以上是大佬教程为你收集整理的在Swagger UI / Spring Boot中支持多个路径映射全部内容,希望文章能够帮你解决在Swagger UI / Spring Boot中支持多个路径映射所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。