netflix api的工程主管daniel jacobson最近在the next web上發表了一篇文章,他表示:我們需要理解誰是api的使用物件,以及他們的使用的方式,並在此基礎上進行api設計。這看起來是顯而易見、理所應當的事情,然而daniel接下來寫道:過去那種傳統的「萬應靈藥」般的面向資源的api,或許並不能滿足使用我們api的使用者中最重要的那些人。良好的api設計不只是關於「資源建模、負載格式、如何管理系統版本以及安全」,更加根本的問題是:「誰是這些api的主要受眾,以及我們應該如何來針對他們進行優化?」
\u0026#xd;\n
面向資源的api或許適用於「廣泛的未知開發者」,但實際上大部分組織機構需要滿足的是「少量已知開發者」的需求,以及特定的用例。「他們或許就是api團隊樓下的工程師、或許是一家被雇用以開發iphone應用的合約公司,又或是來自合作公司的一支工程團隊,」daniel寫道,而優化api的機會正蘊藏在這些情景中。
\u0026#xd;\n
許多公司正在逐漸向其體系架構中引入api編排層——daniel將其定義為「乙個抽象層,它運用通用建模的資料元素和/或特性,並以一種更具體的方式處理它們,從而為某個目標開發者或應用做準備。」daniel列出了部分編排層的關鍵準則如下:
\u0026#xd;\n
大部分api提供者設計的目的,都是為了維護資料模型的純淨度。然而在構建 [編排層]時,我們需要做好在某些時候犧牲純淨度以換取優化和/或效能的心理準備。\u0026#xd;\n
許多api團隊設計api,以求讓自己更易於提供支援。然而在構建 [編排層]時,我們需要做好可能會對增加團隊工作複雜性的心理準備。\u0026#xd;\n
了解api受眾的廣度非常重要。針對受眾的不同成分,有時候我們或許只需要 [編排層]。而在其他一些情況中,我們除了[編排層]之外,或許還需要[萬應靈藥]式的基礎。\u0026#xd;\n
在文章的最後,daniel給出了三個常見的用例,包括將編排層用於針對特定裝置的包裝器、支援一套基於查詢的api,以及提供基於經驗的api。daniel表示,針對特定裝置的包裝器是他所見過的最常見的用例,例如針對iphone優化的api包裝器。此類針對特定裝置的包裝器一般由api團隊為特定消費者提供。相反,基於查詢的api把權力交給了api使用者——讓使用者掌控,「允許他們就像訪問資料庫一樣,通過靈活的引數和負載去查詢[資源]」。
\u0026#xd;\n
netflix採用的模型是基於經驗的api,同時也混合了其他兩個用例——針對特定裝置設計和實現,並由api使用者所擁有的包裝器。負責的部門被劃分為api團隊——負責以通用的、可復用的方式提供資料;以及使用者——掌握資料格式和交付。
\u0026#xd;\n
daniel總結道,api團隊需要將api的使用者視作設計過程中的夥伴進行協作,以便盡可能地讓終端使用者獲得最佳體驗。
\u0026#xd;\n
檢視英文原文:the api orchestration layer
業務流程管理
業務流程管理 課程背景 當今企業之間的競爭,實際上是商業模式及流程能力之間的競爭。一方面,流程是實現商業模式的核心載體,企業需要打造以客戶為導向的端到端流程。另一方面,流程是企業管理體系的關鍵模組,隨著企業的成長,需要不斷提公升流程成熟度,把例外變成例行 把經驗教訓總結到流程中去。隨著資訊時代的來臨...
變更業務流程
1 提交申請 sp於每月18日 前通過sims 向接入省公司提交新增業務申請。2 新增業務初評與測試 sp配合省公司於當月20日前 完成新增業務初評,並對 初評通過的業務完成測試 包括業務測試和計費測試 3 新增業務評估 省公司於當月22日前通過sims電子打分系統進行業務評估。接入省公司受理部門於...
業務流程引擎
一般的時候,我們都採用程式設計式開發,程式設計式開發的好處非常明顯 直接 高效 自由,當然其缺點也是有的,與其優點剛好相對,因為直接,所以有些變化都要進行 上的修改 因為高效,所以一旦出問題,導致的結果也比較嚴重,因為自由,所以帶來的修改風險也比較大。這也就是許多大的公司都在進行流程化開發的重要原因...