1. 程式人生 > >實現API優先設計的重要性和實現方式

實現API優先設計的重要性和實現方式

應用API優先的方法意味著設計API時,使其具有一致性和適應性,無論應用於哪些開發專案。對API使用API​​描述語言(如OpenAPI)是關鍵,因為它有助於建立API與其他程式通訊的樞紐,即使這些系統各自的語言不同。當然,API不存在於單獨的真空中,因此與其利益相關者的協作和規劃對於設計過程同樣重要,設計過程早在任何程式碼實際編寫之前就開始了。簡而言之,實施API優先的策略需要你在設計流程開始前就已經確定下了。

為什麼API優先設計很重要?

傳統上,一旦發現問題並且有人意識到新系統能夠提供必要的解決方案,軟體設計過程就開始了。一旦建立了廣泛的草圖,下一步通常就會深入挖掘以評估可能需要的任何用例和正在建立的系統所需的互動形式。當然,所有這一切都必須考慮到使用者體驗(UX),因為擁有一個有效的系統是不夠的; 對於即將與之互動的開發人員和使用者而言,它也需要對使用者友好,無論是在後端還是在前端。

有時問題甚至更簡單,如果你有一個內部應用程式,其中包含你希望通過API訪問其他系統的資料。但是,該系統有自己的邏輯,可以告知其行為和與他人的互動方式。因此,你建立的任何API都將圍繞這些特性和規則構建。一旦你的內部應用程式作為API連線的一部分,開發人員就會根據系統的內部結構進行互動並附加上它。如果這是你想要的,那可能沒問題,但如果你以後需要對你的內部模型進行更改,就會出現問題。使用API​​優先方法進行設計意味著構建一個不僅僅是內部系統副產品的API。

開發人員應該能夠快速又輕鬆地瞭解API的工作方式,並與其他應用程式整合在一起。只有這樣,他們才能編寫優雅的程式碼,以便與其他系統進行有效的互動,標準就是正確執行API時,它既向後相容又往前擴充套件。

API優先設計方法的優點

1.開發團隊可以並行工作

簽訂協議允許開發人員同時在API開發的不同階段工作,而無需等待應用程式更新所需的時間。因此,開發人員可以根據預先建立的計劃模擬API並有效地測試任何相關的引數項,這樣就會無形中提高了整體的開發效率。

2.降低開發應用程式的成本

API優先設計方法的可重用性允許程式碼從一個專案轉移到另一個專案,以便開發團隊始終擁有可以使用的基線架構。通過消除每次都要從頭開始編碼的需要,任何相關的時間和財務成本也同樣降低。此外,開發人員能夠更快速地解決API問題,而且無需新建任何程式碼,從而可以更順暢地與其他應用程式整合。

3.加快釋出速度

自動化支援的“可直觀檢視”API使新手開發人員能夠快速輕鬆地與API文件進行互動。實際上,許多API構建過程可以使用具有可視API編輯器的工具自動化,可以匯入API定義檔案並自動生成文件,甚至模擬API的返回結果。這些工具大大縮短了開發時間,提高了產品釋出的速度。

最重要的是,使用API​​優先的方法,你仍然可以靈活地新增新的應用程式產品功能,而無需重新設計API體系結構。這是敏捷開發的環境管理的一個明顯優勢,因此預計應用程式更新將根據終端使用者需求快速釋出。

4.改善開發者體驗

開發人員每天都與API進行互動,因此建立一個提供積極的開發人員體驗(DX)的API至關重要。API第一種設計方法產生的API經過精心設計,並且具有良好的文件記錄並且與其核心保持一致。開發人員可以使用API​​更輕鬆地與其他應用程式整合,快速解決出現的任何問題,甚至可以在更短的時間內登陸其他開發人員,這要歸功於不那麼強大的學習曲線。

5.降低失敗風險

對於大多數企業而言,API是開發環境中不可或缺的一部分,涉及從營銷和銷售到代表其品牌的、面向使用者的應用程式等所有內容。任何部分的API故障都可能是毀滅性的。但是,採用API設計優先的方法,由於設計和實現的固有的可靠性,穩定性和一致性,大大降低了出錯的可能性。

應用整合環境下的API設計

API為系統之間的通訊提供了統一的結構,無論是新的還是傳統的,允許資料傳輸進行轉換。但API實施不僅僅是一個IT問題,必須根據整個組織的目標設計API。通過將API策略置於設計流程的最前面,可以改進系統之間的應用程式整合和互操作性,並在許多情況下進行優化。而且如果更改,你仍然可以選擇用其他方式進行開發。

精心設計的API有什麼特點?

最有效的API設計包括以下屬性:

1.易於閱讀和使用:詳細全面且簡潔的API文件易於閱讀,並提供支援開發人員使用的簡單示例。引用和引數都非常直觀,因此易於學習和記憶。

2.難以濫用:實現和整合API方式很容易區分,使開發人員很難濫用它,即使在編寫程式碼時也是如此。它還包含資訊反饋,同時允許開發人員具有相當程度的靈活性。

3.完整而簡潔: API非常全面,允許開發人員使用其通訊的資料,在可預見的未來,逐步構建完整的應用程式。這種穩定可用性和靈活性代表了每個API建立者應該追求的設計理念的型別。

API優先設計的工具

現在,有很多許多工具和標準可以支援API優先開發,如EOLINKER、RAML、Swagger,都提供了出色的編輯工具來支援API優先設計的策略。EOLINKER主要在文件頁面清晰,編輯邏輯簡易,支援自定義MOCK測試,而且支援UI直觀化的自動化測試,讀取程式碼註釋生成文件也可以勝任,而Raml和Swagger頁面顯示也不錯,可以編輯、測試等基本功能,不過相比EOLINKER,在自動化測試功能方面略顯不足,而且只有前者是支援中文的,後兩種只支援英文語言。這些API編輯器都能輕鬆地實現API版本的控制,使得更容易在更短的時間內完成整個開發測試流程。

最後的想法

API優先的方法可以對API的使用產生巨大的影響。如果你設計的API目標包括高使用率和保留率,或者提供給開發人員出色的開發體驗,那更是如此。最有效的API設計通過易於理解的內容和明確的目標導向提供直接的使用者體驗,從而實現快速整合和使用。同樣,隨著學習曲線的降低,API才會享受其可重用性和讓開發人員的持續參與。


 參考資料:David Brown,Implementing an API-First Design Methodology

原文地址:https://dzone.com/articles/implementing-an-api-first-design-methodology<