程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> Web API應用架構設計分析(1),api架構設計

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

編輯:C#入門知識

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


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程序,即使為了利用各自應用的特殊性,也可以把這些應用做的很相似,這樣就給用戶提供了一個統一的界面表示方式,極大提高客戶使用的界面體驗效果,用戶幾乎不需要額外的界面學習,就可以熟悉整個應用體系的各個模塊使用。

分布式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的接口的封裝成即可。具體整個框架的架構圖如下所示。

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved