最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

swagger整合gateway實(shí)現(xiàn)文檔集中化過程

 更新時(shí)間:2026年02月06日 14:59:09   作者:哀愁  
本文介紹了如何將Swagger與Spring?Cloud?Gateway整合,實(shí)現(xiàn)API文檔的集中化管理,通過Spring?Boot的自動(dòng)裝配,配置了網(wǎng)關(guān)Swagger資源提供程序,實(shí)現(xiàn)了通過gateway路由的方式聚合Swagger文檔,整個(gè)過程包括了文件夾結(jié)構(gòu)、自動(dòng)裝配文件內(nèi)容等詳細(xì)步驟

swagger整合gateway文檔集中化

swagger的公用配置

@ConfigurationProperties("my.swagger")
@Getter
@Setter
public class SwaggerProperties {
    /**
     * swagger2默認(rèn)的url后綴
     */
    private String swagger2Url = "/v2/api-docs";

    private String oas30Url = "/v3/api-docs";

    private String swaggerVersion = "2.0";


    /**
     * 自動(dòng)生成文檔的路由名稱,設(shè)置了generateRoutes之后,ignoreRoutes不生效
     */
    private Set<String> generateRoutes = new HashSet<>();

    /**
     * 不自動(dòng)生成文檔的路由名稱,設(shè)置了generateRoutes之后,本配置不生效
     */
    private Set<String> ignoreRoutes = new HashSet<>();

    /**
     * 是否顯示該路由
     */
    public boolean isShow(String route) {
        int generateRoutesSize = generateRoutes.size();
        int ignoreRoutesSize = ignoreRoutes.size();

        if (generateRoutesSize > 0 && !generateRoutes.contains(route)) {
            return false;
        }

        if (ignoreRoutesSize > 0 && ignoreRoutes.contains(route)) {
            return false;
        }

        return true;
    }


}

網(wǎng)關(guān) Swagger 資源提供程序gateway 路由的方式聚合swagger文檔

@EnableConfigurationProperties(SwaggerProperties.class)
@Primary
public class GatewaySwaggerResourceProvider implements SwaggerResourcesProvider {
    @Resource
    private SwaggerProperties swaggerProperties;
    private final RouteLocator routeLocator;
    private final GatewayProperties gatewayProperties;

    @Autowired
    public GatewaySwaggerResourceProvider(RouteLocator routeLocator, GatewayProperties gatewayProperties) {
        this.routeLocator = routeLocator;
        this.gatewayProperties = gatewayProperties;
    }

    /**
     * 獲取所有的swagger資源配置
     *
     * @return
     */
    @Override
    public List<SwaggerResource> get() {
        List<SwaggerResource> resources = new ArrayList<>();
        Set<String> routes = new HashSet<>();
        //取出Spring Cloud Gateway中的route
        routeLocator.getRoutes().subscribe(route -> routes.add(route.getId()));
        //結(jié)合application.yml中的路由配置,只獲取有效的route節(jié)點(diǎn)
        gatewayProperties.getRoutes().stream().filter(
                routeDefinition -> (
                        routes.contains(routeDefinition.getId()) && swaggerProperties.isShow(routeDefinition.getId())
                )
        ).forEach(routeDefinition -> routeDefinition.getPredicates().stream()
                .filter(predicateDefinition -> ("Path").equalsIgnoreCase(predicateDefinition.getName()))
                .forEach(predicateDefinition -> resources.add(
                        swaggerResource(
                                routeDefinition.getId(),
                                predicateDefinition.getArgs().get(NameUtils.GENERATED_NAME_PREFIX + "0").replace("/**", swaggerProperties.getSwagger2Url())
                        )
                        )
                )
        );
        return resources;


    }

    private SwaggerResource swaggerResource(String name, String location) {
        SwaggerResource swaggerResource = new SwaggerResource();
        swaggerResource.setName(name);
        swaggerResource.setLocation(location);
        swaggerResource.setSwaggerVersion(swaggerProperties.getSwaggerVersion());
        return swaggerResource;
    }
}

這里使用的SpringBoot的自動(dòng)裝配

文件夾的結(jié)構(gòu)為

文件內(nèi)的內(nèi)容為

Auto Configure

org.springframework.boot.autoconfigure.EnableAutoConfiguration=
com.mn.swagger.SwaggerProperties,
com.mn.swagger.GatewaySwaggerResourceProvider

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。 

相關(guān)文章

  • 使用SpringJPA?直接實(shí)現(xiàn)count(*)

    使用SpringJPA?直接實(shí)現(xiàn)count(*)

    這篇文章主要介紹了SpringJPA?直接實(shí)現(xiàn)count(*),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-11-11
  • Java按時(shí)間梯度實(shí)現(xiàn)異步回調(diào)接口的方法

    Java按時(shí)間梯度實(shí)現(xiàn)異步回調(diào)接口的方法

    這篇文章主要介紹了Java按時(shí)間梯度實(shí)現(xiàn)異步回調(diào)接口,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-08-08
  • Java中ZIP文件中文亂碼問題的解決指南

    Java中ZIP文件中文亂碼問題的解決指南

    文章介紹Java文件壓縮解壓中處理中文亂碼的解決方案,包括指定UTF-8編碼、使用緩沖流及Ant工具配置,確保文件名和內(nèi)容正確顯示,避免因字符集不一致導(dǎo)致的亂碼問題,本文結(jié)合示例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2025-09-09
  • java多線程中的生產(chǎn)者和消費(fèi)者隊(duì)列詳解

    java多線程中的生產(chǎn)者和消費(fèi)者隊(duì)列詳解

    這篇文章主要介紹了java多線程中的生產(chǎn)者和消費(fèi)者隊(duì)列詳解,隊(duì)列,是一種數(shù)據(jù)結(jié)構(gòu),除了優(yōu)先級(jí)隊(duì)列和LIFO隊(duì)列外,隊(duì)列都是以FIFO(先進(jìn)先出)的方式對(duì)各個(gè)元素進(jìn)行排序的,需要的朋友可以參考下
    2024-01-01
  • MybatisPlus插件自動(dòng)維護(hù)更新和創(chuàng)建時(shí)間方式

    MybatisPlus插件自動(dòng)維護(hù)更新和創(chuàng)建時(shí)間方式

    這篇文章主要介紹了MybatisPlus插件自動(dòng)維護(hù)更新和創(chuàng)建時(shí)間方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • java抓取網(wǎng)頁(yè)或文件中的郵箱號(hào)碼

    java抓取網(wǎng)頁(yè)或文件中的郵箱號(hào)碼

    這篇文章主要為大家詳細(xì)介紹了java如何抓取網(wǎng)頁(yè)或文件中的郵箱號(hào)碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • SpringBoot項(xiàng)目集成第三方CAS-client jar包的方法

    SpringBoot項(xiàng)目集成第三方CAS-client jar包的方法

    本文介紹了SpringBoot中集成第三方CAS-clientjar包的兩種核心方式,涵蓋了從背景原理到實(shí)操步驟、依賴沖突解決、打包配置及常見問題排查的全面內(nèi)容,通過對(duì)比兩種集成方式,提出了選型建議,并強(qiáng)調(diào)了依賴管理的規(guī)范性,為實(shí)際項(xiàng)目開發(fā)提供了全面指導(dǎo),感興趣的朋友一起看看吧
    2025-12-12
  • java中實(shí)體類和JSON對(duì)象之間相互轉(zhuǎn)化

    java中實(shí)體類和JSON對(duì)象之間相互轉(zhuǎn)化

    Java中關(guān)于Json格式轉(zhuǎn)化Object,Map,Collection類型和String類型之間的轉(zhuǎn)化在我們實(shí)際項(xiàng)目中應(yīng)用的很是普遍和廣泛。最近工作的過程中也是經(jīng)常有,因此,自己封裝了一個(gè)類分享給大家。
    2015-05-05
  • Java中的內(nèi)部類你了解嗎

    Java中的內(nèi)部類你了解嗎

    這篇文章主要為大家介紹了Java的內(nèi)部類,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-01-01
  • Java Synchronized鎖失敗案例及解決方案

    Java Synchronized鎖失敗案例及解決方案

    這篇文章主要介紹了Java Synchronized鎖失敗案例及解決方案,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-04-04

最新評(píng)論

萨嘎县| 昌吉市| 巴青县| 韶关市| 城口县| 和硕县| 柯坪县| 海宁市| 乌拉特中旗| 大同市| 南皮县| 河东区| 上饶县| 阜城县| 西盟| 宜兰县| 儋州市| 蓝山县| 大名县| 杨浦区| 平乐县| 汾阳市| 金昌市| 奉贤区| 金沙县| 赞皇县| 弥勒县| 利津县| 定安县| 东莞市| 波密县| 马山县| 苍南县| 正镶白旗| 博爱县| 长阳| 昔阳县| 板桥市| 老河口市| 马尔康县| 定西市|