天天看點

教你讀懂 API 全生命周期,我隻需要這篇文章就夠了

上一篇介紹了API 以及和 API 有關的趨勢,接下來我們看看和 API 全生命周期有關的産品。

1.1 全生命周期的使用者是誰

真正産品使用者是那些與 API 打交道的人,也就是研發團隊。角色可能是:

  • 開發人員:前端、後端
  • 測試
  • 運維
教你讀懂 API 全生命周期,我隻需要這篇文章就夠了

1.2 使用者日常工作流程

他們日常工作在做什麼呢?

産品經理提出功能需求,說這個産品要設計成什麼樣子,開發接到需求之後,根據需求開始開發,開發完了送出測試,測試完了疊代上線,然後産品驗收後讓運維人員釋出上線。

教你讀懂 API 全生命周期,我隻需要這篇文章就夠了

1.3 全生命周期産品

實際上 API 貫穿了整個産品傳遞的流程,近年來越來越多公司開始關注 API 的連接配接價值,将更多的研發精力投入到圍繞 API 的工作中。

以 Eolink 為例,API 全生命周期産品主要包括四大塊:

  • 開發
  • 測試
  • 運維
  • 開放
教你讀懂 API 全生命周期,我隻需要這篇文章就夠了

我們的産品如何幫助研發團隊去管理各個生命周期裡面的 API 呢?

1.3.1 API 研發管理&自動化測試

先分享兩個理念,文檔驅動開發以及測試驅動開發。

文檔驅動開發指的是在開發之前先把文檔寫好再進行開發,能夠幫你提前思考,這就好比我們在做題之前需要先了解清楚題目要求,否則不審題就下筆很容易導緻最後返工。

除此之外還能友善協作,就像造車,不是一個人能完成的,造車身的人如果提前能告訴造底盤的人輪子要多大,造底盤的就不用等他了,效率提高!

教你讀懂 API 全生命周期,我隻需要這篇文章就夠了

而測試驅動開發指的是在開發之前先把測試方案/用例寫好,要求開發人員開發的代碼能夠順利通過測試,如果測試不通過則持續進行改進。這就好比我們考試前會先了解考試通過的标準,沒有标準亂答一通,結果肯定不會太好。

教你讀懂 API 全生命周期,我隻需要這篇文章就夠了

而通過以上兩種開發方式進行結合後就是 Eolink API 研發管理平台 的設計理念:文檔與測試驅動開發(DTDD)。

教你讀懂 API 全生命周期,我隻需要這篇文章就夠了

下面我使用一個很直覺的圖來展現在我們平台怎麼踐行上面的理念。

如果沒使用我們平台,流程可能是:

後端先開發 API,開發完了寫了文檔告訴前端,前端等文檔好了之後再對接,最後送出給測試。

教你讀懂 API 全生命周期,我隻需要這篇文章就夠了

發現沒有,用了我們平台之後,很多流程都可以提前到開發階段了,串行直接變并行,這效率不提高才怪!

教你讀懂 API 全生命周期,我隻需要這篇文章就夠了

在我們平台幾乎所有的協作工作都是圍繞着 API 文檔進行的,是以開發流程就變成了後端先設計好文檔,然後動手去開發 API。

前端對頁面進行開發,光寫頁面肯定不夠,還得通過 API 拿資料對接頁面,前端可以使用平台上的 Mock 功能先對接,後端好了之後直接就可以送出給測試。

測試人員在開發階段也沒有閑着,文檔出來之後他們就可以去準備測試用例了,等聯調完後直接一鍵回歸測試。

1.3.2 API 監控

上線之後,某些關鍵業務比如說登入、購買功能挂了的話對産品影響會很大,是以要對這些 API 進行監控——按照一定頻率發起 API 請求。

教你讀懂 API 全生命周期,我隻需要這篇文章就夠了

例如這是使用 Eolink API 監控去監控線上的某個關鍵功能,如果業務挂了它就會給相關人員發郵件,提醒他們趕緊去處理事故。

教你讀懂 API 全生命周期,我隻需要這篇文章就夠了

1.3.3 API 網關

在 API 生命周期的運維階段還有一個産品,那就是 API 網關。

前面提到過,一般微服務架構的系統都會需要 API 網關,這是為什麼呢?

教你讀懂 API 全生命周期,我隻需要這篇文章就夠了

我還是拿産品設計當例子,雖然說我們拆分了極速版和标準版,但裡面有一些基礎功能肯定是一樣的,如果每個産品都實作一遍,成本是不是很高?那怎麼辦?

有人就提出,這樣吧,以後每次開發前,都要給産品老大看一下,如果有相同的需求,他來排程資源。

教你讀懂 API 全生命周期,我隻需要這篇文章就夠了

API 網關就是就是像産品老大這樣的人,無論你想通路哪個服務,都先來到網關這,網關再幫你轉發,網關就是微服務的代言人。

教你讀懂 API 全生命周期,我隻需要這篇文章就夠了

一般網關會做什麼呢?

1.3.3.1 負載均衡

這是用戶端向服務端發起請求的示例,這時候隻有一個 API 請求,網絡十分順暢。

教你讀懂 API 全生命周期,我隻需要這篇文章就夠了

随着上線的人越來越多,向伺服器請求的用戶端也越來越多,就像 12306 高峰期搶票,通路的人越多,服務越容易挂掉,它容量就這麼大,怎麼辦?

教你讀懂 API 全生命周期,我隻需要這篇文章就夠了

微服務架構有個特性就是可以橫向拓展,那這時候我們橫向拓展多一台伺服器,再讓網關幫我們統一配置設定請求,這樣就将負載均分到了不同的伺服器,以求平衡,這就是所謂的負載均衡。

教你讀懂 API 全生命周期,我隻需要這篇文章就夠了

除此之外,API 網關還可以做統一的身份驗證,不符合身份驗證的請求擋回去,以及加入黑白名單和限速等等防止資源濫用。

1.3.4 API 開放平台

好,講完了研發運維階段的産品,我們來看看 API 開放和交易的産品,它們是 API 開放平台和 API 交易中心。

使用者可以在企業内部将 API 開放給其他團隊用,也可以作為産品例如短信接口售賣給外部的人。

教你讀懂 API 全生命周期,我隻需要這篇文章就夠了

 Eolink 的 APISpace

教你讀懂 API 全生命周期,我隻需要這篇文章就夠了

好的,總結一下,API 全生命周期可以:

  • 提供一站式的 API 管理産品提升企業 API 研發管理效率,解決企業内部服務間 API 管理、測試、性能和安全的問題。
  • 建立統一的 API 交易平台,幫助企業對外提供 API 服務,打造 API 經濟,幫助全球開發者查找、開放、購買、測試及使用 API。

Eoapi 處在 API 全生命周期的開發階段,托管後面所有産品的 API 中繼資料,現階段我們有兩個目标:

  • 豐富 Eoapi 在 API 設計、API 調試階段的功能,優化體驗
  • 通過插件市場豐富生态,和其他産品打通

我們的開源項目代碼倉庫:https://github.com/eolinker/eoapi

如果你對我們的項目感興趣,不妨去試試,有任何關于 Eoapi 的疑問,我們可以來這裡聊聊。

繼續閱讀