1. 程式人生 > >Web API應用架構設計分析(1)

Web API應用架構設計分析(1)

人員管理 門面 guid orm 和平 ide 額外 簡化 響應

Web API應用架構設計分析(1)

Web API 是一種應用接口框架,它能夠構建HTTP服務以支撐更廣泛的客戶端(包括瀏覽器,手機和平板電腦等移動設備)的框架, ASP.NET Web API 是一種用於在 .NET Framework 上構建 RESTful 應用程序的理想平臺。本文主要以ASP.NET Web API 的框架實現來介紹整個Web API應用架構設計,但不局限於.NET的技術。

1、Web API的核心層設計

在目前發達的應用場景下,我們往往需要接入Winform客戶端、APP程序、網站程序、以及目前熱火朝天的微信應用等,這些數據應該可以由同一個服務提供,這個就是我們所需要構建的Web API平臺,基於上述的需求,很多企業的需求都是以Web API優先的理念來設計整個企業應用體系的。Web API作為整個紐帶的核心,在整個核心層需要考慮到統一性、穩定性、以及安全性等方面因素。

技術分享

從上圖我們可以看到,整個外圍的應用場景圍繞著Web API核心層構建,如果我們把它換一種方式表達,那麽也就是下面的設計圖示,我們把微信應用、APP應用、Web應用、Winform應用,作為Web API接口層上面的一個界面應用層來處理,這樣就是基於一個API接口層,接入多個或多種方式的界面應用層,從而構建企業豐富的數據服務應用。

由於Web API層作為一個公共的接口層,我們就很好保證了各個界面應用層的數據一致性,如果考慮到響應式的集成處理,我們甚至可以把微信應用、APP應用、Web應用做層一套Web程序,即使為了利用各自應用的特殊性,也可以把這些應用做的很相似,這樣就給用戶提供了一個統一的界面表示方式,極大提高客戶使用的界面體驗效果,用戶幾乎不需要額外的界面學習,就可以熟悉整個應用體系的各個模塊使用。

技術分享

在整個WebAPI下面可以通過業務邏輯層整合數據存儲和外部接口訪問兩部分工作,也就是數據訪問層、外部接口層這樣的分層概念,如果擴展開來,我們還可以提供給客戶一些文件、圖片、視頻等資料的文件存儲,類似微信的多媒體API接口一樣,這樣整個Web API的接口層就能為所有接入的客戶端提供豐富的數據接口,從而實現強大的、靈活的接入。

上面提到了如果考慮到響應式的集成處理,我們甚至可以把微信應用、APP應用、Web應用做層一套Web程序,其實APP應用層,可以分為兩種類型,一種是原生的APP類型,采用原生語言如Object C來開發IOS應用,采用java來開發安卓的原生應用一樣;還有一種是封裝一個入口的原生框架+後臺響應式Web頁面,如下圖所示。

技術分享

對比原生應用,采用入口框架+響應式頁面的方式,開發效率非常快、升級維護成本也可以降低很多,比較Web開發總比使用原始APP開發快捷得多。

從上面的架構分析來看,我們的Web API作為核心層,可以在上面開發我們各種企業業務應用,

技術分享

在目前比較熱門的會員管理、客戶管理等方面,結合微信的應用催化劑,就可以做的更加符合移動的潮流,從而實現我們“互聯網+”的應用落地。

2、Web API層在Winform混合框架中的應用

同樣,在Winform界面裏面,我們除了可以利用直接訪問數據庫方式,以及采用訪問分布式WCF服務的方式接入,還可以使得它能夠訪問Web API的數據服務,從而構建成一個適應性更加廣泛、功能更加強大的混合式開發框架模式。

安全性方便,直接訪問數據庫方式,沒有在網絡上公開接口,它們只是在單機或者局域網安全的環境運行,因此只需要確保數據庫的安全即可,一般可以通過加密連接字符串方式實現一定的限制即可。

WCF服務的安全性,可以通過X509證書方式實現校驗,也還可以利用自定義的用戶名、密碼驗證方式進行檢查等等。

對於Web API,由於它提供的是一種無狀態的接口訪問,而且往往Web API一般為了多種客戶端接入的需要,可能需要發布在公網上進行訪問,因此我們需要更加註重Web API接口層的安全性,這方面我們後面詳細介紹。

也就是新型的混合式開發框架,除了直連數據庫訪問的傳統模式,WCF分布式訪問的WCF服務訪問模式,還可以接入API分布式訪問的Web API接口模式,他們的關系構成了一個完整的Winform應用體系,如下圖所示。

技術分享

下面圖示是我的基於傳統訪問數據庫方式和分布式WCF數據服務訪問方式的一個模塊分析圖,圍繞著混合型框架的核心,我們可以構建很多松散耦合的模塊,從而能夠為我們Winform應用的開發集成提供更高的開發效率。

混合型框架可以看成是Winform框架高級版本,除了它本身是一個完整的業務系統外,它外圍的所有輔助性模塊均(如通用權限、通用字典、通用附件管理、通用人員管理。。。。)都實現了這種混合型的框架,因此使用非常方便,整個框架如果簡化來看,就是在原有的Winform界面層,用接口調用方式,避免和業務邏輯類的緊耦合關系。由於它是通過接口方式的調用方式,它本身又可以通過配置指定指向WCF的實現,因此也囊括了WCF框架的一切特點。在完成Web API層的開發後,基於Web API層的整合就是我下一個階段的工作了。

技術分享

我們進一步分析混合式框架的實現細節,原來考慮的傳統Winform訪問數據庫和WCF服務訪問方式,就是通過一個配置模塊,確定是采用直接訪問數據庫方式,還是訪問WCF服務的方式,它們兩者是統一到一個Facade接口門面層上,如果考慮到Web API層,基於混合式的架構,也就是在這個Facade接口門面層上增加多一個Web API的接口的封裝成即可。具體整個框架的架構圖如下所示。

技術分享

Web API應用架構設計分析(1)