IBM 最近宣布開源他們的 API 微網(wǎng)關(Microgateway)。這意味著任何一個開發(fā)人員和組織現(xiàn)在都可以無償在他們的項目里使用這個軟件。
API 網(wǎng)關是處于 API 服務和消費者應用程序之間的一個軟件層。這個層的作用是為 API 提供各種常見的服務,比如安全、速率限定,以及變更管理工具。IBM 的微網(wǎng)關采用 Node.js 開發(fā),并采用了 Swagger 2.0 規(guī)范。這一軟件的開源震驚了開發(fā)社區(qū),因為 IBM、微軟、谷歌等公司的 API 網(wǎng)關都不是免費的。IBM 的微網(wǎng)關與 IBM 的 DataPower Gateway 是不一樣的,后者是另一個企業(yè)解決方案,更加側(cè)重安全。
IBM API 微網(wǎng)關的主要特性是網(wǎng)絡流量管理、方便實現(xiàn)安全標準(比如 OAuth),以及策略管理。它還有一個 API 設計器,提供了一個圖形用戶界面用于創(chuàng)建 YAML API 規(guī)范。它還包含了一個小型的數(shù)據(jù)存儲引擎和一個健壯的工作流引擎,可以用于持久化基本的 API 數(shù)據(jù)模型,并基于 API 的消費行為創(chuàng)建復雜的策略。微網(wǎng)關為常見的場景提供了預置的策略,比如 API 秘鑰驗證、基本的授權和速率限定。
IBM 微網(wǎng)關把主要關注點集中在策略管理上。用戶如果不打算使用預置的策略,可以使用“if”和“swtich”語句創(chuàng)建自定義的策略,這些語句是流管理的組成部分。IBM 的產(chǎn)品經(jīng)理 Ozair Sheikn 在 IBM 博客上介紹了如何擴展這些策略,而不僅僅使用基本的條件語句,“如果你打算卷起袖子應用自己的邏輯,JavaScript 策略提供了非常大的靈活性”。預置的基本條件語句和 JavaScript 配置能力讓用戶可以使用網(wǎng)關來滿足自己的業(yè)務需求,并自定義業(yè)務邏輯。
微網(wǎng)關的另一個關注點是 API 的定義識別和創(chuàng)建。內(nèi)置了 Swagger 規(guī)范意味著可識別的 API 定義標準,用戶可以使用底層的 Swagger 編輯器來創(chuàng)建基于 YAML 的規(guī)范。因為編輯 YAML 十分敏感,猶如在大風中組裝一個紙牌做的房子,圖形用戶界面可以讓這個過程不那么費時。開發(fā)人員可以借助這些工具在網(wǎng)關內(nèi)部創(chuàng)建自己的 API 定義,也就有可能為消費者 API 的定義創(chuàng)建策略。不過,這個網(wǎng)關只能識別兩種 API:REST 和 SOAP。使用這兩種類型之外 API 的開發(fā)者得不到相關的支持。類似地,如果 Swagger 規(guī)范與現(xiàn)有的 API 生態(tài)系統(tǒng)不匹配,那么微網(wǎng)關就不會如預期那樣健壯。不過,開源的優(yōu)勢在于,如果項目需要新增或改進某些功能,他們就會去尋找代碼貢獻者。
查看英文原文: IBM Open Sources their API Microgateway