首先需要說明的是這是.net framework的一個組件,而不是針對.net core的。目前工作比較忙,因此.net core的轉(zhuǎn)換正在編寫過程中,有了實現(xiàn)會第一時間貼出來。
接下來進入正題。對于大型的分層系統(tǒng),會有一個應(yīng)用程序?qū)?,?yīng)用程序?qū)拥闹饕饔檬欠庋b業(yè)務(wù)領(lǐng)域?qū)拥臉I(yè)務(wù)邏輯層,并對界面展示層提供服務(wù)。界面展示層例如有Web網(wǎng)站、移動應(yīng)用、WPF等等,例如下圖。
很多情況下,業(yè)務(wù)領(lǐng)域?qū)又虚g的業(yè)務(wù)邏輯層方法和應(yīng)用服務(wù)層的服務(wù)接口幾乎是一致的。在業(yè)務(wù)邏輯方法編寫完成后,編程人員,也會重復(fù)性的編寫應(yīng)用服務(wù)層。該層難度不大,但是屬于重復(fù)性勞動并且工作量不小。對于一個有敬業(yè)精神的程序員來說,問題就來了,寫一大堆不加思考的、工作量大的代碼,還不如寫一個框架自動通過業(yè)務(wù)邏輯層生成WebApi。
為了簡化編程人員的工作量,減少錯誤的出現(xiàn),我們編寫了這個框架,就是通過業(yè)務(wù)邏輯層的方法自動生成應(yīng)用服務(wù)層的服務(wù)。
要了解這個自動生成WebApi的框架,我們得簡要的講解下.net framework下webapi的請求處理過程。
Web API是微軟的主導(dǎo)的一種面向服務(wù)的實現(xiàn)方式,已經(jīng)集成在visual studio的模板中,是一種比較成熟的SOA數(shù)據(jù)服務(wù)方式。Web API的服務(wù)提供方式實現(xiàn)過程由三個步驟組成:路由匹配階段;控制器選擇和構(gòu)建階段;執(zhí)行器選擇和執(zhí)行階段。