標籤:bapi services 字串 device including 實現 info orm 許可權
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)