WEBAPI學習之路(1) 路由

2021-09-01 11:47:59 字數 3906 閱讀 7350

每乙個做後端的程式猿必須知道的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 設定預設路徑 ...