在上圖所示的分層架構中,人人網開放平台提供了不同層次的功能。圖中紅色部分表示目前還沒有提供的功能模塊,需要未來由平台或開源社區來提供;黃色部分表示在舊的平台架構中已經提供但正在往新的架構中遷移的功能模塊;其它顏色的是功能比較完整的功能模塊。
從圖中可以看出,人人網開放平台大概分為三個層次,共同為最上層的各種形式的第三方應用程序提供服務:
- Core Service Layer: 實現了人人網對外提供的最底層的API,定義好了接口參數和調用流程,第三方或平台方可以根據這個層次的API在上面封裝SDK。
- SDK layer: 由第三方或平台方提供的針對各種開發語言或開發環境的SDK。
- High SDK layer: 構建在Core Service Layer或SDK Layer之上的高級SDK,例如Discuz SDK就是基於JS SDK來封裝的。
第三方應用程序可以使用任意三個層次提供的API進行開發。
那么,我們為什么要推出這樣的分層架構呢?因為它具有如下好處:
- 通用性。更好地支持web、mobile、desktop等運行環境,提供了多種形式的API。即提供了需要授權才能使用的Rest API,也包括無需授權即可使用的Widget API。
- 標准化。新的架構的一個很重要的特點就在於它的分層架構和明確定義的API接口,這有利於第三方獲得穩定清晰的編程環境。
- 行業分工的清晰化。標准化帶來的好處之一,是可以將SDK的開發維護工作交給第三方開源社區來完成,而不是全部由平台來完成。開源社區在Core Service Layer層次提供的API上開發SDK,第三方應用開發者在SDK基礎上開發應用。
- 易維護和易理解。清晰的分層模型和明確定義的接口規范有利於降低平台方的維護成本,也有利於第三方對平台架構的理解。
- 擴大開放范圍,提供更多新特性。在某些出於安全考慮而無法通過Rest API開放的功能,如加好友功能,則可以由新的Widget API來提供