- 透視C#核心技術:系統架構及移動端開發
- 馮軍編著
- 1270字
- 2021-07-08 12:02:05
4.3 Web API實戰
使用VS 2012及其后版本都有現成的Web API創建模板,只需跟著向導一步步創建就行,創建出來后,項目中會有MVC、Web API的項目,Web API對MVC有依賴,不能單獨創建。而Web API和MVC都是利用類似的路由機制。在默認路由中,Web API使用/api/{controller}/{id}作為路由,添加了/api/節以區分MVC和Web API。
接下來,添加一個Web API的Controller,取名為PersonController,它繼承于ApiController。在創建這個Controller時,定義了Person資源,在PersonController里的所有操作均是圍繞著Person資源來的。接下來將定義一組增刪改查操作。
在Web Api中實現HTTP方法包括Post(新增)、Put(修改)、Delete(刪除)和Get(查詢),具體如下。
● Get:生到數據列表(默認),或者得到一條實體數據。
● Post:向服務端添加一條記錄,記錄實體為Form對象。
● Put:添加或修改服務端的一條記錄,記錄實體的Form對象,記錄主鍵以Get方式進行傳輸。
● Delete:刪除服務端的一條記錄。
在Web API中,默認路由采用了一種約定:根據謂詞來進行路由,而方法名的前綴就是調用該方法對應使用的HTTP謂詞。
1. 創建Web項目
1)從“文件”菜單中選擇“新建>項目”命令,選擇“ASP.NET Web應用程序(.NET Framework)”模板,再單擊“下一步”按鈕。將項目命名為WiseShop.WebUI,然后單擊“確定”按鈕。
2)在打開的“新建ASP.NET Web應用程序”對話框中,選擇Web API模板,在下面的“為以下項添加文件夾和核心引用”中確認勾選“Web窗體”“MVC(M)”和“Web API(W)”復選框,然后單擊“確定”按鈕,如圖4-1所示。

圖4-1 新建Web API項目界面
默認情況下,服務器使用位于App_Start/WebApiConfig.cs中的路由表。routeTemplate:"api/{controller}/{id}",為API路由。WebApi中如果使用多個post請求,無法識別,報錯500 Internal Server Error的解決方案為修改WebApiConfig文件,代碼如下。


2. 實體類庫(Model)

掃碼看視頻
實體類庫(Model)主要用于存放數據庫中的表字段,創建步驟如下。
1)要建立實體類庫Model,首先打開項目,在解決方案中單擊鼠標右鍵,執行添加>新建項目操作,選中類庫并命名為Model。
2)選中Model類庫,按下Shift+ALT+C組合鍵,建立實體類AccountEntity類,代碼如下。


3. 數據訪問層(DAL)
數據訪問層(DAL)主要用于對數據庫的訪問,即對數據庫執行添加、刪除、修改、更新等操作。
1)要建立數據訪問層類庫DAL,首先打開項目,在解決方案中單擊鼠標右鍵,執行添加>新建項目命令,選中類庫并更名為DAL。
2)然后在DAL中添加對Model的引用,即選中DAL并按下Alt+P+R組合鍵,執行解決方案>項目命令,選中Model選項。
3)要在DAL中添加對System.Configuration的引用,則選中DAL并按下Alt+P+R組合鍵,執行程序集>框架操作,選中System.Configuration選項。
4)要建立數據訪問類,則選中DAL并按下Shift+ALT+C,建立數據訪問類AccountDal類,代碼如下。

4. 業務邏輯層(BLL)
業務邏輯層主要用于對傳送數據進行邏輯判斷或分析等,操作步驟如下。
1)要建立業務邏輯層類庫BLL,首先打開項目,在解決方案中右擊,執行添加>新建項目操作,選中類庫并更名為BLL。
2)接著在BLL中添加對Model和DAL的引用,即選中BLL,按下Alt+P+R組合鍵,執行解決方案>項目操作,然后選中Model和DAL。
3)最后選中BLL,按下Shift+ALT+C組合鍵,執行建立業務邏輯類Common.Utilit類操作,來建立業務邏輯類,代碼如下。

5. 表現層(UI)
表現層(UI)即用戶界面層,創建表現層的具體步驟如下。
1)要在UI中添加對Model和BLL的引用,則選中UI,按下Alt+P+R組合鍵,執行解決方案>項目命令,然后選中Model和BLL。
2)接著編寫代碼傳遞數據給BLL層,具體如下。



- OpenStack Cloud Computing Cookbook(Third Edition)
- Qt 5 and OpenCV 4 Computer Vision Projects
- Expert C++
- 動手玩轉Scratch3.0編程:人工智能科創教育指南
- 碼上行動:零基礎學會Python編程(ChatGPT版)
- WSO2 Developer’s Guide
- Scratch 3.0少兒編程與邏輯思維訓練
- 單片機應用與調試項目教程(C語言版)
- Getting Started with Gulp
- MySQL從入門到精通(軟件開發視頻大講堂)
- INSTANT Silverlight 5 Animation
- Visual Basic程序設計(第三版)
- Python預測之美:數據分析與算法實戰(雙色)
- MATLAB 2020 GUI程序設計從入門到精通
- 計算機應用基礎案例教程(第二版)