前言
我們都知道webapi是依賴於asp.net mvc的httproutecollection進行路由 。
但webapi和mvc之間是沒有依賴關係的, webapi的基類apicontroller繼承於ihttpcontroller,而mvc的基類controller 繼承於icontroller。
webapi和mvc雖然都使用httproutecollection進行路由,但webapi經歷的通道是servicescontainer,而mvc經歷通道還是原始的ihttpmodule。
但用visual studio建立的mvc webapi專案通常會帶很多功能,而這些功能,很多是我們並不想用的,或者我們想用其他開源控制項代替它。
而直接建立空專案的webapi又太原始。
所以,讓我們編寫乙個簡潔版本的webapi吧。
淨化版webapi預覽
首先,我們先看下淨化版webapi的結構。
如上圖所示,**結構很簡單,除開配置檔案,整個web專案只有2個檔案;而需要被呼叫的webapi都被封裝到了webapi程式集中了。
接下來我們一起看下編寫這個淨化版webapi的過程吧。
淨化版webapi編寫
webapiconfig
首先,引入必要的dll,如下圖所示。
然後,我們編寫web專案的寫webapiconfig;**如下:
public static class webapiconfig可以看到webapiconfig是個靜態類中,我們在其中建立了靜態註冊方法register,在方法內,我們主要在做一件事,那就是為httpconfiguration物件做配置。/",defaults: new
); }
}
而在配置中,我們將wepapi的路由配置成了webapi//,也就是說,我們的webapi未來的訪問位址將為【http://localhost:5180/webapi/login】這樣的模式。
在webapiconfig類中,我們還用到了這樣乙個類webapiattribute,我們在為httpconfiguration物件的filters屬性,新增了這個類的物件。
通過filters屬性這個字樣,我們可以得出,這個類主要應用應該是過濾。
下面我們看一下這個類的**:
}通過閱讀**,我們應該可以發現,這是乙個aop的過濾器。
在執行真正webapi之前,會先進入這裡進行過濾,過濾通過的api,才會呼叫 base.onactionexecuting(actioncontext)方法進行呼叫和執行。
結束呼叫同理,結束呼叫前,會在該類中進行攔截和過濾處理。
配置檔案
webapiconfig編寫結束了,現在,我們需要將這個靜態類註冊到專案中。
開啟global.asax檔案,編寫如下**:
可以看到,我們已通過configure方法,將我們編寫好的webapiconfig新增到了全域性配置中了。
}到此web專案的編寫就完成了,下面我們在webapi程式集中,編寫個簡單的webapi,**如下:
public class logincontroller : baseapicontroller然後我們執行**,進行webapi訪問。; }
catch (exception ex)
}}public class baseapicontroller : apicontroller
}
如上圖所示,我們的webapi訪問成功。
到此c#淨化版webapi框架就介紹完了。
,非常感謝!
webapi快速開發框架
一 webapi快速開發框架搭建之後臺 從0開始搭建webapi基本框架 許可權控制 異常管理 日誌管理 快取管理 原始碼 webapi框架搭建 建立專案 一 webapi框架搭建 建立專案 二 以iis為部署環境的配置 webapi框架搭建 建立專案 三 webapi owin webapi框架搭...
RC版WebApi引數繫結
之前看了寫的httpclient webapi的乙個例子,參考他的 子階寫了乙個,結果請求服務獲取的引數都是空的,而將引數繫結在url中則可以正常得到引數,折騰好久,終於在網上找到了相關資料,原來rc版webapi在引數繫結上發生了些變化。rc版的webapi引數繫結器分為兩種 1.model bi...
WebApi框架增刪改查前端
用html頁面 前端jquery 先引入 const uri select let todos null function getcount data el.text data name else document ready function 繫結事件 function deleteitem id...