每乙個做後端的程式猿必須知道的http服務,所以webapi是.net軟體開發工程師必須會的,在這裡留下我學習webapi的一些心得和體會,我們從最基礎的一點一點學習。
從mvc到webapi,路由機制一直是伴隨著這些技術的乙個重要組成部分。
webapi的學習最基礎也是第乙個應該學習的就應該是webapi的路由,若連路由都不懂(都不知道怎麼請求方法)談何學習後面的知識?(劃重點)
下面正式揭開webapi使用restful風格定義路由的面紗
首先建立乙個webapi專案(使用的是vs2015)選擇webapi專案
貼上主角**:
public static class webapiconfig
/",defaults: new );}
}
我們主要看maphttproute方法,這個方法有4個過載方法。
分別來看一下它的方法引數有什麼用:
name:表示路由的名稱
routetemplate:路由的規則,向這個api中請求什麼方法完全看這個routetemplate的規則制定
defaults:路由規則的引數設定。
constraints:路由的約束,如引數約束等。
這些引數若是不懂可以暫不理解,在後續的學習中會慢慢的體會到這些引數的用法。
上面講述了一些webapi的專案建立和路由檔案的基礎解釋,下面開始介紹webapi的路由如何配置,有什麼讓人眼前一亮的規則。首先建立乙個api控制器
並寫下以下**:
public class startcontroller : apicontroller
}
很簡單的乙個get方法,下面我們執行專案去訪問這個方法
我們來分析一下這個url,localhost:64437本地執行埠為64437,不用解釋;
/api/start 對應我們在webapiconfig.cs檔案中的預設路由對應api/沒毛病,
路由另乙個引數defaults設定為new (表示可以帶引數也可以不帶引數)也沒問題。
小結:webapi路由匹配規則根據請求的型別(get,post,put,delete)和引數去匹配對應的方法,mvc的路由規則webapi同樣適用但 不提倡,webapi提倡restful風格(個人理解)
我們在start控制器中過載乙個get方法
}在路由中寫上我們自定義的路由
);//自定義路由
然後執行專案通過幾個例子來了解webapi的路由規則
第乙個例子:
這裡成功請求到了無參的get方法,分析一下url,/start/start/123/匹配到start/// 。基礎部分講解到了defaults這個引數是設定路由引數的,這裡我們設定ordercode = "123",所以在url中我們也要寫上123,寫別的就不能成功請求。
第二個例子:
成功請求到帶int型別引數的get方法,由此可見webapi路由規則是通過請求型別和請求引數來匹配到具體方法
有一種情況:
當我這個api控制器裡面兩個方法都是get請求,且引數都是一樣的 ,那就不好辦了。
有這種出現時我們需要啟用特性路由
);//自動以路由
特性路由如何使用,請看以下**:
}只需要加上[route()]特性
成功請求到第乙個get方法
成功請求到第二個get方法
帶引數的特性路由:[route("start//aaaa")]
帶預設值和約束引數的特性路由:帶引數的特性路由:[route("start//aaaa")]
ps: 錯誤寫法[route("start//aaaa")],特性路由中間不能有空格否則會報錯
若整個api控制器裡面的方法都用同乙個字首,則需要在控制器類上加上特性
[routeprefix("api/start")]**如下
}總結:以上便是webapi的路由規則學習。
在此謝謝懶得安分大牛分享的文章。
Vue學習之路 3 路由
在乙個系統中,一般會由很多頁面組成,當乙個頁面要跳轉到另外乙個頁面的時候是通過改變url路徑來實現的,這個時候vue需要知道當前url對應的那個元件頁面,這個控制者就是vue router。使用vue router需要載入vue router.js。csdn資源 布局 主頁資訊 設定元件html頁面...
dubbo學習 五 路由
dubbo的路由規則,是基於invoker集合進行篩選,過濾出可用的invoker集合用於後續的執行。閘道器黑白名單場景如下所示 第二類是動態列表,比如來自flink按時間區間動態計算的閾值計算出來的清單,如 在dubbo閘道器下,黑白名單場景卻不適合使用dubbo的路由規則來執行,以常用的cond...
vue 2 0路由之路由巢狀示例詳解
前言 方法如下 1 引入依賴庫就不必再說 2 建立元件 兩種寫法 第一種 間接 var about vue.extend 第二種 直接 var out vue.extend 3 建立 router 例項,傳 routes 路由對映配置 var router new vuerouter 設定預設路徑 ...