网关中间件研发首选一站式API协作平台:Eolink
大家好我是路飛,今天這篇文章和大家聊聊企業級網關中間件開發者,對API管理方面的需求,以及如何選擇一款高效且功能強大的API管理工具:Eolink:https://www.eolink.com/ 。
一、你們眼中的中間件程序員是什么樣子的?
一轉眼已經是出來實習/正式工作第二個年頭了,這期間在業務團隊待過一年也在雞架中間件團隊待過一年。
最開始我是很憧憬做中間件和基建類產品開發工作的,因為可以更專注于技術視角有技術挑戰性,不需要考慮那么多上層業務和CRUD,而且相比業務團隊,中間件團隊下班時間可能會更早一些。
按照我一個師兄的話說:“中間件團隊,就是應該上班只專注代碼,到點準時下班。沒出大問題之前,讓公司其他團隊都感覺不到有這個組織存在,而如果一旦出現問題,可以第一個頂上去做技術支撐并把損失降低到最小”。
- 實際上的中間件研發程序員工作現狀:
客服小二、答疑群小助手、中間件接入QuickStart文檔優化工程師…(有一定自嘲成分哈哈)
我們就以企業級網關中間件產品為例,一個高性能的網關中間件,“API是一等公民”。流量適配、流控策略、路由編排、協議轉換、異步調度、權限認證、流量監控、網關日志、數據安全合規等等都是直接和API掛鉤的,所以無論是業務網關中間件還是技術網關中間件,對API的維護管理都是要重點關注的,也是日常運營維護最花時間地方。
甚至一個網關中間件在API層面做的足夠優秀,是可以拿來作為一個重量級RPC框架使用的。
- 為什么說網關中間件重度依賴API管理和運營?
個人認為,API就是流量來源,從請求入口到協議轉換、適配,再到請求透傳,整個過程中API都是參與的。
如果把API比作中介,那么兩端的就是房東(服務提供方)和租房客(服務訂閱方),房客通過中介去找房東獲取優質房源。
三者關系圖如下:
那么問題就來了:
問題1:如何處理好一個API和多個服務訂閱方/提供方之間的聯調關系?以及接口文檔撰寫?
這也是日常開發運維工作中最頭疼的問題,由于網關中間件的特殊性,針對一個API需要同時協助多個用戶聯調接入,我們每天都要花大量的人日投入在這上面,中間件程序員被迫變成了答疑客服。
訂閱方A:喂,幫忙看下,這個API接入調用失敗了,是不是你們中間件出問題了? 我:... 提供方B:喂,幫忙看下,這個API服務提供被限流了,是不是你們中間件這邊搞的鬼? 我:... 訂閱方C:喂,這個API報文格式怎么配啊,給一個API文檔和測試用例啊! 我:... 提供方D:喂,這個API變更了,報文格式轉換有問題了,麻煩搞一份API文檔發過來啊! 我:... 訂閱放E:喂,你們的網關API接入太復雜了,SDK源碼看不懂啊,給一個接口測試用例啊! 我:... 提供方F:喂,幫忙提供一份我們業務域的所有API接口數據和文檔用例把! 我:...問題2:如何處理API批量變更導致集成測試腳本、接口文檔的批量變更?
當一個API報文字段變更,緊接著就需要變更API文檔,以及對應的集成測試腳本,CURL命令都需要變更,尤其是對于一批彼此之前強關聯的API變更,可能同時需要級聯變更多個API的文檔內容。
中間件程序員變成了文檔工程師和測試工程師
對于沒工作經驗的同學,可能不知道為什么要做集成測試,這里我解釋下:
我理解集成測試不只是對某個API或者接口進行功能是否可用測試,還有壓力測試(評估QPS),以及全鏈路測試,模擬線上真實環境的多接口聯動流量接入。
那么,為什么API會不斷變更呢?Spring Cloud Gateway這種網關中間件,不是直接配置好API接口就可以一直使用嗎?
道理很簡單,Spring Cloud Gateway 屬于純靜態配置的網關中間件,不適用業務復雜、協議多樣、定制化需求高的場景。
問題3:API流量監控統計
做過電商業務的同學應該清楚,每到618、雙十一,雙十二這種購物狂歡節,我們的后端服務接口壓力就會激增,為了保障服務穩定性和接口高可用,一般都會在狂歡節之前,把所有API、接口的近期流量、壓力測試報告都收攏整理一下,統計一張Excel表(監控流量需要一個一個去查,逐個統計且效率低)。
我們會根據往年經驗和當前流量收集的梳理結果,去評估出今年狂歡節的QPS峰值上限。
中間件程序員變成了Excel工程師
Eolink 可以完美解決上述問題,讓程序員擺脫低技術含量的工作
- 官網地址:https://www.eolink.com/
- 幫助文檔:https://help.eolink.com/#/
二、選擇 Eolink 的五個理由
1. API文檔動態生成
Eolink 支持3種創建API文檔的方式:
- 手動創建API(適合所有團隊;
- 根據代碼注解自動生成文檔(適合使用過或正在使用Swagger產品來自動生成文檔的團隊);
- 根據代碼模板快速創建API文檔(適合所有團隊)。
當我們創建了 API 文檔之后,可以隨時查看 API 的改動情況、根據 API 文檔發起 API 測試、編寫 API 測試用例、使用 Mock API等。如下圖是在系統中管理的API文檔,可以詳細的看到API的描述信息、變更歷史、測試用例、Mock API等內容。
在API描述標簽頁中填寫API的請求路徑、API名稱、標簽、負責人等基本信息。
- API 狀態:可以方便成員查看API當前所處的狀態,并且進行狀態流轉的通知;
- Tag 標簽:可以作為API的備注或者是篩選條件;
- 負責人:當API文檔內容發生變化時,負責人會自動收到API變更通知。
此外 Eolink 還支持API文檔的動態管理,可以按照不同項目、應用區分不同的API文檔集(文檔分組),支持文檔的導入、復制、到處等操作:
2. API集成測試
2.1 API測試用例
Eolink同時支持多種協議的接口請求測試。這個我認為是目前用過的API測試工具中做的最好的,支持多協議請求,非常適合網關中間件程序員日常測試需求,市面上大多數API測試工具對gRpc/Rpc的支持都做得不是太好。
- HTTP/HTTPS API測試:
進入某個HTTP協議的API文檔詳情頁,點擊文檔上方 測試 標簽,即可進入 API 測試頁,系統會根據API文檔的定義的參數自動生成測試界面并且填充測試數據。
- WS/WSS API測試:
進入某個WS協議的API文檔詳情頁,點擊文檔上方 測試 標簽,即可進入 API 測試頁,系統會根據API文檔的定義的求頭部、Query參數、請求體自動生成測試界面并且填充測試數據。
- TCP/UDP測試:
進入某個TCP/UDP協議的API文檔詳情頁,點擊文檔上方 測試 標簽,即可進入 API 測試頁,系統會根據API文檔的定義的求頭部、Query參數、請求體自動生成測試界面并且填充測試數據。
- RPC/gRPC測試:
以gRPC接口為例,進入某個gRPC協議的API文檔詳情頁,點擊文檔上方 測試 標簽,即可進入 API 測試頁,系統會根據API文檔的定義的proto、請求體自動生成測試界面并且填充測試數據。
2.2 支持登錄態接口測試
Eolink可以在客戶都模擬登錄授權,我們在測試強授權校驗接口時,不需要一個一個接口去配置cookie、token或者headerCrsf跨域配置。
在API請求時需要進行的權限校驗,如Basic Auth、JWT:
2.3 支持接口前置/后置腳本
對于需要動態加密和驗簽的接口(例如根據請求報文和密鑰key動態生成加密簽名),這種場景下,我們之前的做法很笨拙:就是一個一個接口通過執行加密工具類把報文和密鑰key生成對應的加密簽名~
而使用Eolink就可以直接在前置腳本中完成加密簽名的操作~
- 前置腳本:在API請求前執行javascript腳本,改變請求參數、進行簽名加密等操作
- 后置腳本:在API請求后執行javascript腳本,改變返回結果、進行解密等操作
3. 支持MOCK服務
在瀑布流開發模式中,如果前端開發人員需要進行頁面對接,需要后端先完成API的開發工作,因此前后端開發的進度會互相影響。通過Mock API,我們可以事先編寫好API的數據生成規則,由系統動態生成API的返回數據。開發人員通過訪問Mock API來獲得頁面所需要的數據,完成對接工作。
Mock API支持根據不同的請求參數返回不同的HTTP Status Code、Header、Body等數據。我們可以在一個API文檔里創建多個Mock API,模擬前端發起的各種請求,方便對前端邏輯進行校驗。
當項目正式發布時,只需將 Mock API 的地址前綴替換為實際的訪問地址即可。
進入API文檔詳情頁面,點擊高級Mock 標簽,點擊添加 Mock。
進入Mock API列表頁面,點擊調用地址即可復制到剪貼板,在代碼中直接對該API地址發起請求即可得到響應結果。
4. API 網關
作為一個網關中間件開發者,我認為Eolink的Api網關是業界做的比較好的
- 基于Golang實現,開源代碼倉庫地址:https://github.com/eolinker/goku_lite
- 對于Java研發網關中間件感興趣的同學,也可以讀一讀常見開源網關中間件源碼:https://gitee.com/mirrors/spring-cloud-gateway
Eolink提供的微服務網關產品能夠實現高性能 HTTP API 轉發、多租戶管理、API 訪問權限控制等目的,擁有強大的自定義插件系統可以自行擴展,并且提供友好的圖形化配置界面,能夠快速幫助企業進行 API 服務治理、提高 API 服務的穩定性和安全性。
接入流程示例:
其實我覺得,企業級網關中間件的解決方案,大家都是互相借鑒的,性能高低除了設計架構之外,很大程度也和服務器性能有關(吞吐量),如果只作為使用者角度來看,Eolink 提供的API網關解決方案產品體驗度是比較高的。
具體接入流程參考文檔:https://help.eolink.com/#/tutorial/?productID=14
5. API流量監控
我覺得這個功能是非常實用的,甚至省下開發者單獨去搭建一套性能監控大盤了,直接拿來使用就好了~
文檔地址:https://help.eolink.com/?status=link-jump#/tutorial/?groupID=c-958&productID=32
5.1 創建監控API
Eolinker API 網絡監控平臺支持從 Eolinker API Management(API管理產品)中導入API信息,或者手動創建監控API。
進入API監控頁面,點擊 新建API 按鈕,會直接進入API監控編輯頁面。你可以在編輯頁中設置API監控的名稱、請求地址、請求信息、校驗規則等信息。
5.2 開啟API監控
創建好API之后,在操作欄點擊 更多 的按鈕,在下拉菜單中選擇 開啟監控。
5.3 API實時分析報告
看到這個功能我自己都心動了,如果早知道有這個產品,我們就不需要大費周折自己從0到1研發一套網關體系了…
進入 API 的監控詳情頁,選擇時間段為實時,此時頁面會顯示該 API 最新一次的監控報告,可以看到API最新一次請求的各階段時間分析:
5.4 API監控日志
這個功能就不展示了,我覺得這個功能相比前面幾個功能就沒那么亮點了??陀^角度看,功能豐富界面交互友好是值得點贊的。但是API日志最好還是提供更全面一些為好,當然這個也涉及到成本哈哈,現在網關日志存儲也是很多網關中間件團隊最耗費成本的地方之一。
三、Eolink下載安裝
- 下載地址:https://www.eolink.com/pc/
根據自己電腦系統選擇對應客戶端安裝即可~
下載完成登錄之后就進入API管理頁面啦:
跑一個API體驗一波~
API統計看板:
四、總結
通過這個產品,也改變了我對國產研發提效產品的認識,希望類似的產品越來越多。
另外,也希望每個程序員都能在工作中把更多的精力投入到小而精美的技術開發上,繁瑣枯燥的重復性工作交給現有的產品和組件去處理。我認為后端開發不只是CRUD,如果有興趣也歡迎大家一起來研究和學習下相關的網關中間件產品研發和開源版本學習:
- Eolink基于golang開發的API網關開源項目 https://github.com/eolinker/goku_lite
- Java網關開源項目,大名鼎鼎的Gateway(靜態配置網關,可以研究下如何在這個輪子基礎上改造出一款支持動態配置的運行態網關中間件):https://gitee.com/mirrors/spring-cloud-gateway
更多詳情查看Eolink官網地址:https://www.eolink.com/?utm_source=kol&utm_medium=csdn&utm_content=w4602
總結
以上是生活随笔為你收集整理的网关中间件研发首选一站式API协作平台:Eolink的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ubuntu配置及美化篇
- 下一篇: ffmpeg 简单教程