<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          GATEWAY-WormHole簡單易用的 API 管理平臺

          聯(lián)合創(chuàng)作 · 2023-09-19 05:25

              WormHole是“蟲洞”意思。物理界解釋為連接黑洞和白洞的時空隧道。它的結(jié)構(gòu)和計算機網(wǎng)絡(luò)中的網(wǎng)關(guān)類似,作為連接兩個世界的樞紐。各管各,不用關(guān)心中間做了什么。如下:

              WormHole是一個簡單、易用的api管理平臺。目的是為了降低后端服務(wù)開發(fā)與前端調(diào)用的耦合性。通過WormHole這一層使整個項目的開發(fā)協(xié)作更加完善??蛻舳碎_發(fā)人員從管理平臺查找需要的接口信息進行調(diào)用,服務(wù)端開發(fā)人員定義好接口后同步到管理平臺中,管理平臺可以統(tǒng)一對接口的訪問設(shè)置等。

          WormHole有兩個版本,一個是基于SpringMVC框架、一個是基于原版改造為SpringBoot版本的。

          平臺特性

              
          • 網(wǎng)關(guān)支持Dubbo服務(wù)
          •   
          • 完善的授權(quán)管理(接口權(quán)限、web操作權(quán)限等)
          •   
          • 安全機制(驗簽、IP名單設(shè)置)
          •   
          • 流控機制(sentinel限流、熔斷、隔離)
          •   
          • 處理流程、可插拔機制(組件化配置)
          •   
          • 支持mock功能,設(shè)定預(yù)期結(jié)果加快聯(lián)調(diào)進度
          •   
          • 支持接口的快速錄入測試功能
          •   
          • 有完善的用戶、角色管理,使用shiro框架
          •   
          • 接口的有效管理,跨環(huán)境策略
          •   
          • 平臺的擴展性,可按需調(diào)整

          平臺技術(shù)結(jié)構(gòu)

          注:server層是指具體的dubbo服務(wù)提供方,框架、插件根據(jù)實際需求處理

          WormHole的SpringBoot版本是 將SpringMVC、Shiro、JSP、Velocity、Servlet等組件與SpringBoot進行整合。部分配置還有優(yōu)化空間,可按需調(diào)整

          平臺組件邏輯

              
          • contextProcessor 存儲上下文信息
          •   
          • ipProcessor IP黑白名單設(shè)置
          •   
          • userAgentProcessor 瀏覽器用戶代理
          •   
          • paramProcessor 參數(shù)檢查驗證
          •   
          • callbackParamProcessor 回調(diào)接口參數(shù)檢查驗證
          •   
          • loginProcessor token信息檢查
          •   
          • flowControlProcessor 流控限制
          •   
          • signProcessor 簽名驗證
          •   
          • authProcessor 權(quán)限驗證
          •   
          • mockProcessor mock邏輯處理
          •   
          • dubboProcessor 泛化調(diào)用dubbo服務(wù)


          ## 平臺項目結(jié)構(gòu)

          1、maven項目結(jié)構(gòu)

          wormehole
          
              / — wormehole-api         【管理臺接口、實體類、傳輸對象、異常等的定義】
          
              / — wormehole-domain      【客戶端信息、用戶token、result對象等的定義】
          
              / — wormehole-web         【管理臺的頁面實現(xiàn)、接口實現(xiàn)業(yè)務(wù)邏輯】

          2、項目目錄結(jié)構(gòu)

          wormehole-api

          / — com.kaistart.gateway
          
            / — api.service         【網(wǎng)關(guān)邏輯相關(guān)的所有接口定義】
          
            / — domain              【網(wǎng)關(guān)邏輯相關(guān)的實體對象】
          
            / — dto                 【業(yè)務(wù)傳輸對象】
          
            / — exception           【自定義異常類、返回碼】
          
            / — support             【自定義公共應(yīng)對象】
          
              / — json            【自定義公共響應(yīng)對象】
          
              / — page            【自定義公共分頁對象】
          
              / — proto           【自定義公共接口】
          
            / — tool                【日期轉(zhuǎn)換工具類】

          wormehole-domain

          | — com.kaistart.gateway.domain
          
            | — pojo                【網(wǎng)關(guān)的客戶端對象、token信息】
          
            | — response            【網(wǎng)關(guān)層的異常、結(jié)構(gòu)定義】

          wormehole-web 【JAVA類、配置部分】

          src/main/java
          
          | — com.kaistart            【主包名】
          
            | — auth                【管理臺核心包】
          
              | — controller      【管理臺用戶、角色、權(quán)限、資源等控制層】
          
              | — domain          【管理臺相關(guān)實體類】
          
              | — interceptor     【管理臺攔截器,url、權(quán)限等處理】
          
              | — mapper          【管理臺相關(guān)的mapper對象】
          
              | — service         【管理臺相關(guān)的service對象與實現(xiàn)】
          
            | — gateway             【網(wǎng)關(guān)核心包】
          
              | — common          【網(wǎng)關(guān)業(yè)務(wù)公共包】
          
                | — cache       【緩存工具類】
          
                | — exception   【網(wǎng)關(guān)異常類】  
          
                | — http        【http請求工具類,支持get請求傳body】
          
                | — util        【工具類,zk,md5,executor】
          
              | — controller      【網(wǎng)關(guān)業(yè)務(wù)控制層】
          
              | — config          【網(wǎng)關(guān)的必要配置】
          
              | — dubbo           【網(wǎng)關(guān)的簽名算法及對外服務(wù)】
          
              | — mgr             【網(wǎng)關(guān)的管理臺處理】
          
                | — mapper      【網(wǎng)關(guān)相關(guān)的mapper對象】
          
                | — service     【網(wǎng)關(guān)相關(guān)的service定義及實現(xiàn)】
          
              | — processor       【網(wǎng)關(guān)邏輯的核心組件】
          
              | — servlet         【網(wǎng)關(guān)接口請求的servlet地址】
          
          src/main/resources
          
          | — mybatis                 【mybatis相關(guān)xml文件】
          
            | — auth                【控制臺核心功能相關(guān)】
          
            | — mgr                 【網(wǎng)關(guān)功能相關(guān)】
          
          | — spring                  【核心配置文件】
          
          | — velocity                【velocity編碼配置】
          
          | — log4j.xml               【日志文件】
          
          
          
          webapp
          
          | — common                  【公共頁面】
          
          | — velocity                【velocity核心資源】
          
            | — config              【配置】
          
            | — image               【圖片資源】
          
            | — js                  【核心js相關(guān)】
          
            | — components          【公用js組件】
          
            | — pages               【對應(yīng)頁面的js引用文件】
          
            | — utils               【分頁等工具類】
          
            | — xxx.js              【框架相關(guān)js】
          
          | — lib                     【引用的三方插件資源】
          
          | — style                   【引用的css樣式表】
          
          | — WEB-INF         
          
            | — templates           【頁面結(jié)構(gòu)】
          
              | — demo            【樣例】
          
              | — layout          【頁面框架布局】  
          
              | — pages           【管理臺頁面包】
          
                | — auth        【用戶、角色、權(quán)限相關(guān)】
          
                | — gateway     【網(wǎng)關(guān)相關(guān)頁面】
          
                | — system      【系統(tǒng)查看頁面】
          
                | — zookeeper   【zk相關(guān)頁面】
          
            | — web.xml             【核心web.xml配置頁面】
          
          | — 401.jsp                 【過渡頁面】
          
          | — index.jsp               【主頁】
          
          | — login.jsp               【登錄頁面】

          SpringBoot版本的配置文件會少一點。 約定大于配置,應(yīng)該還有較多優(yōu)化空間。

          平臺環(huán)境要求

              
          1. JDK1.8
          2.   
          3. Disconf配套環(huán)境【已移除配置】
          4.   
          5. Zookeeper
          6.   
          7. Tomcat容器等
          8.   
          9. Mysql數(shù)據(jù)庫

          SpringBoot版本不需要tomcat,

          平臺運行說明

              
          •   

            下載項目

              
          •   
          •   

            處理以下幾個核心配置

              
                  
            • /gateway.sql 【初始化數(shù)據(jù)庫信息】
            •     
            • /resources/config.properties 【修改zk、redis、mysql等的連接】
            •     
            • /com/kaistart/gateway/config/MgrConfig.java 【修改不同環(huán)境的ip信息,這里這樣寫主要為了簡化使用,可按需遷移到配置中心去】
            •     
            • gateway-web的 Context root 為 “/”
            •   
              
          •   
          •   

            部署到tomcat容器進行啟動, 記得將webcontext-root 改為 '/'

              

          運行的時候,DEBUG模式查看日志,比較容易處理問題。

          瀏覽 19
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機掃一掃分享

          編輯 分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  色婷婷免费在线 | 偷偷操不一样的久久 | 婷婷男人天堂 | 一区二区第三十七页 | 黄片免费观看大全 |