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