web API設計閱讀筆記(一)

章節一 初探web API設計
web API和軟體設計有相同的基本概念,如模組、封裝、低耦合、高內聚的特性,以應對持續變動和成長的需求。 成功的API是為了不同使用者能夠和系統交換資訊,HTTP是其中一種主要的通訊協議,來達成請求/等待/回應的過程。
API設計的考量中,要讓使用者易懂和易用,讓系統內的資源可以對外服務,所以必須注重說明文件的撰寫。
在web應用的開發中,API通常是被歸類於後端範疇,由資源驅動前端的使用者的操作流程。比如,一個沒有權限的使用者,會被API的回應做出錯誤提示,前端的腳本則導引使用者回登入頁。
章節二 API設計與團隊合作
- web API設計當中,強調的是確認API的目標,並思考如何實現設計。
- 書中提到實現設計的一個參考心法:ADDR流程,Align(對齊產品定位和目標)、Define(定義出使用者需求所需要的服務資源是什麼)、Design(架構API的風格和說明文件)、Refine(優化從使用者反饋的體驗心得)。
在這些流程又會再去細分出實際執行的細節項目,這裡想強調的精神,是在設計過程要有設計優先的思維,否則會有各種反模式情況,比如先寫好API,但卻不符合使用者最後的需求。
章節三 鑑別數位能力
- 每個產品所提供給使用者的功能或服務,可以被視為數位能力。
書中舉例是一個電商網站的使用者,可以在網站上a.瀏覽書單 b.關鍵字搜尋書籍 c.下訂單..等,而API的目的則是能明確提供這些服務。
章節四 產生活動與步驟
- 工作故事(job story):從使用者角度出發會有一連串操作、觸發事件和交換資訊的過程。
這整個流程,參與開發的角色都應該Align(對齊產品定位和目標)來切分出各自的工作任務。
章節五 界定API邊界
- 透過活動流程和當中的工作故事,可以了解到那些服務是可以被劃分在同個API範疇。
書中以購書流程為例,區分出了Shopping API、Order Creation API、Payment Processing API,這也是日後API模組的架構藍圖。