上一篇介紹了API 以及和 API 有關的趨勢,接下來我們看看和 API 全生命周期有關的産品。
1.1 全生命周期的使用者是誰
真正産品使用者是那些與 API 打交道的人,也就是研發團隊。角色可能是:
- 開發人員:前端、後端
- 測試
- 運維
1.2 使用者日常工作流程
他們日常工作在做什麼呢?
産品經理提出功能需求,說這個産品要設計成什麼樣子,開發接到需求之後,根據需求開始開發,開發完了送出測試,測試完了疊代上線,然後産品驗收後讓運維人員釋出上線。
1.3 全生命周期産品
實際上 API 貫穿了整個産品傳遞的流程,近年來越來越多公司開始關注 API 的連接配接價值,将更多的研發精力投入到圍繞 API 的工作中。
以 Eolink 為例,API 全生命周期産品主要包括四大塊:
- 開發
- 測試
- 運維
- 開放
我們的産品如何幫助研發團隊去管理各個生命周期裡面的 API 呢?
1.3.1 API 研發管理&自動化測試
先分享兩個理念,文檔驅動開發以及測試驅動開發。
文檔驅動開發指的是在開發之前先把文檔寫好再進行開發,能夠幫你提前思考,這就好比我們在做題之前需要先了解清楚題目要求,否則不審題就下筆很容易導緻最後返工。
除此之外還能友善協作,就像造車,不是一個人能完成的,造車身的人如果提前能告訴造底盤的人輪子要多大,造底盤的就不用等他了,效率提高!
而測試驅動開發指的是在開發之前先把測試方案/用例寫好,要求開發人員開發的代碼能夠順利通過測試,如果測試不通過則持續進行改進。這就好比我們考試前會先了解考試通過的标準,沒有标準亂答一通,結果肯定不會太好。
而通過以上兩種開發方式進行結合後就是 Eolink API 研發管理平台 的設計理念:文檔與測試驅動開發(DTDD)。
下面我使用一個很直覺的圖來展現在我們平台怎麼踐行上面的理念。
如果沒使用我們平台,流程可能是:
後端先開發 API,開發完了寫了文檔告訴前端,前端等文檔好了之後再對接,最後送出給測試。
發現沒有,用了我們平台之後,很多流程都可以提前到開發階段了,串行直接變并行,這效率不提高才怪!
在我們平台幾乎所有的協作工作都是圍繞着 API 文檔進行的,是以開發流程就變成了後端先設計好文檔,然後動手去開發 API。
前端對頁面進行開發,光寫頁面肯定不夠,還得通過 API 拿資料對接頁面,前端可以使用平台上的 Mock 功能先對接,後端好了之後直接就可以送出給測試。
測試人員在開發階段也沒有閑着,文檔出來之後他們就可以去準備測試用例了,等聯調完後直接一鍵回歸測試。
1.3.2 API 監控
上線之後,某些關鍵業務比如說登入、購買功能挂了的話對産品影響會很大,是以要對這些 API 進行監控——按照一定頻率發起 API 請求。
例如這是使用 Eolink API 監控去監控線上的某個關鍵功能,如果業務挂了它就會給相關人員發郵件,提醒他們趕緊去處理事故。
1.3.3 API 網關
在 API 生命周期的運維階段還有一個産品,那就是 API 網關。
前面提到過,一般微服務架構的系統都會需要 API 網關,這是為什麼呢?
我還是拿産品設計當例子,雖然說我們拆分了極速版和标準版,但裡面有一些基礎功能肯定是一樣的,如果每個産品都實作一遍,成本是不是很高?那怎麼辦?
有人就提出,這樣吧,以後每次開發前,都要給産品老大看一下,如果有相同的需求,他來排程資源。
API 網關就是就是像産品老大這樣的人,無論你想通路哪個服務,都先來到網關這,網關再幫你轉發,網關就是微服務的代言人。
一般網關會做什麼呢?
1.3.3.1 負載均衡
這是用戶端向服務端發起請求的示例,這時候隻有一個 API 請求,網絡十分順暢。
随着上線的人越來越多,向伺服器請求的用戶端也越來越多,就像 12306 高峰期搶票,通路的人越多,服務越容易挂掉,它容量就這麼大,怎麼辦?
微服務架構有個特性就是可以橫向拓展,那這時候我們橫向拓展多一台伺服器,再讓網關幫我們統一配置設定請求,這樣就将負載均分到了不同的伺服器,以求平衡,這就是所謂的負載均衡。
除此之外,API 網關還可以做統一的身份驗證,不符合身份驗證的請求擋回去,以及加入黑白名單和限速等等防止資源濫用。
1.3.4 API 開放平台
好,講完了研發運維階段的産品,我們來看看 API 開放和交易的産品,它們是 API 開放平台和 API 交易中心。
使用者可以在企業内部将 API 開放給其他團隊用,也可以作為産品例如短信接口售賣給外部的人。
Eolink 的 APISpace
好的,總結一下,API 全生命周期可以:
- 提供一站式的 API 管理産品提升企業 API 研發管理效率,解決企業内部服務間 API 管理、測試、性能和安全的問題。
- 建立統一的 API 交易平台,幫助企業對外提供 API 服務,打造 API 經濟,幫助全球開發者查找、開放、購買、測試及使用 API。
Eoapi 處在 API 全生命周期的開發階段,托管後面所有産品的 API 中繼資料,現階段我們有兩個目标:
- 豐富 Eoapi 在 API 設計、API 調試階段的功能,優化體驗
- 通過插件市場豐富生态,和其他産品打通
我們的開源項目代碼倉庫:https://github.com/eolinker/eoapi
如果你對我們的項目感興趣,不妨去試試,有任何關于 Eoapi 的疑問,我們可以來這裡聊聊。