<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Contact Manager Web API 示例[2] Web API Routing

      聯系人管理器web API是一個Asp.net web api示例程序,演示了通過ASP.NET Web API 公開聯系信息,并允許您添加和刪除聯系人,示例地址http://code.msdn.microsoft.com/Contact-Manager-Web-API-0e8e373dContact Manager Web API 示例[1]CRUD 操作 已經做了一個基本的介紹,本文主要介紹Web API Routing。

      如果你已經熟悉 ASP.NET MVC,你會發現 Web API Routing(路由)與 MVC 非常類似。主要差異在 Web API 使用 HTTP Method ( GET, POST, PUT, DELETE ...) 而不是使用 URI 路徑來選擇 Action。你也可以在 Web API 里使用 MVC 樣式的路由。以下討論專注在 Web API 且可以沒有 ASP.MVC 基礎。

      ROUTING TABLES, 路由表

      在 ASP.NET Web API,一個 controller 是一個 class() 以處理 HTTP 請求(requests)。在 controller 里所有的公開方法(public  methods)都稱為 Action方法 或簡稱 Action。當 Web API Framework 接收到一個請求,它路由請求到一個 Action。
      Framework 會使用路由表(Routing Table),決定那一個 Action 會被調用。如果你在 ASP.NET 里使用 Web API,路由表會定義在 Global.asax 檔案中。默認使用 Visual Studio 去新增一個 Web API 項目,項目樣版會建立默認路由給你:

      config.Routes.MapHttpRoute(
                   "Default", // Route name
                   "{controller}/{id}/{ext}", // URL with parameters
                   new { id = RouteParameter.Optional, ext = RouteParameter.Optional } // Parameter defaults
               );

      注意,如果你使用 self-host Web API,你必須在 HttpSelfHostConfiguration對象 上直接設定路由表。

      每個實體(entry)在路由表里都包含一個路由樣板(route template)。Web API 的路由樣板默認是 "api/{controller}/{id}",此樣板里,"api" 是文字路徑片段,{controller} {id} 是定位參數
      當 Web API Framework 接收到一個 HTTP 請求,它會去嘗試比對 URI 對路由表的路由樣板之一, 如果沒有符合的路由,Client 會收到一個 404 錯誤。例如,以下 URI 會符合默認路由:

      · /api/contacts

      · /api/contacts/1

      當發現一個符合的路由,Web API 會選擇 controller 與 action:

      · 尋找 controller,Web API 新增 "Controller" 到 {controller} 變數的值。

      · 尋找 action,Web API 查看 HTTP 方法,然后查看 action,哪一個名稱的開始與是 HTTP 方法名稱。例如,一個 GET 請求,Web API 會查看那一個 action 是以 "Get..."  開頭,像是 "GetContact" 或 "GetAllContacts"。此慣例使用在 GET, POST, PUT, DELETE 方法。你也能在 controller 里使用屬性(attributes)去啟用其他 HTTP 方法。

      · 在路由樣板里其他定位變量,像是 {id},會對應至 action 的參數。

      以下有一些可能 HTTP 請求:

      Web API Routing and HTTP Method

      HTTP Method

      URI路徑

      Action

      參數

      GET

      /api/contacts

      GetAllContacts

      (無)

      GET

      /api/contacts/5           

      GetContactById     

      5

      DELETE

      /api/contacts/5

      DeleteContact

      5

      POST

      /api/contacts

      (無符合)

       

      留意 URI 的 {id} 段落,如果存在,會對應到 action 里的 id 參數。上述范例, controller 定義了兩個 GET 方法,一個 id 參數一個 id 參數。另外,POST 請求會失敗,因為在 controller 里沒有定義 "Post..." 方法。

      路由參數, ROUTING VARIATIONS

      接下來我們討論路由參數。

      HTTP 方法, HTTP Methods

      Web API 使用HTTP 方法的名稱慣例(naming convention)來替代。你也可以明確在 action 方法上指定使用 HttpGet, HttpPost, HttpPut, HttpDelete 屬性
      例如,以下的 Get 方法會對應至 GET 請求:

             [HttpGet]
            public HttpResponseMessage<Contact> Get(int id)
            {
               ……

            }

      Action 名稱的路由

      在默認路由模板,Web API 使用 HTTP 方法來選擇 action。不管如何,你也能建立一個 URI 含有 action 名稱的路由。

      config.Routes.MapHttpRoute(
                      "Default", // Route name
                      "/api/{controller}/{action}/{id}", // URL with parameters
                      new { id = RouteParameter.Optional} // Parameter defaults
                  );

      此路由樣板,在 controller 里的 action 方法會與 {action} 參數對應。使用此種路由樣式,你必須明確指定允許屬性在 HTTP 方法。例如,在 controller 里有一個 Details 方法:

             [HttpGet]
            public HttpResponseMessage<Contact> Details(int id)
            {

            }
      一個 "/api/contacts/details/1" 的 GET 請求將會對應至 Details 方法。這種路由樣式非常類似 ASP.NET MVC,或是接近一個 RPC-style API。在一個 RESTful API,你應該避免在 URI 使用動詞(verbs),因為 URI 應該是定義資源而不是action。

      非 Action

      如果要預防一個 ACTION 被呼叫,可以使用 NONACTION 屬性。這是一個信號跟 FRAMEWORK 說此方法不是一個 ACTION 方法。

            [NonAction]
            public Contact GetPrivateContact(int id)
            {

                  ……

            }


      參考資料

      posted @ 2012-05-12 12:38  張善友  閱讀(2780)  評論(2)    收藏  舉報
      主站蜘蛛池模板: 国产精品中文字幕观看| 凤山市| 久久免费偷拍视频有没有| 一区二区三区av天堂| 四虎永久在线精品无码视频| 精品国产粉嫩内射白浆内射双马尾| 色综合久久人妻精品日韩| 商城县| 国产精品中文字幕视频| 色欲AV无码一区二区人妻| 果冻传媒董小宛视频| 国产精品自产在线观看一| 亚洲精品成人一二三专区| 制服丝袜人妻有码无码中文字幕| 久治县| 国产亚洲情侣一区二区无| 免费黄色大全一区二区三区| 国产中文三级全黄| 激情文学一区二区国产区| 四虎国产精品成人免费久久| 人妻系列无码专区无码中出| 亚洲18禁私人影院| 中文字幕自拍偷拍福利视频 | 国产福利萌白酱在线观看视频| 日韩无人区码卡1卡2卡| 久女女热精品视频在线观看| 疯狂做受XXXX高潮国产| 国产高清在线精品一本大道| 中文字幕一区二区网站| 日韩精品人妻av一区二区三区| 98精品全国免费观看视频| 熟妇人妻中文a∨无码| 国偷自产一区二区三区在线视频| 国产精品免费视频不卡| 国产超高清麻豆精品传媒麻豆精品 | 快好爽射给我视频| 极品无码国模国产在线观看| 成人无号精品一区二区三区| 日韩国产精品无码一区二区三区| 91国产自拍一区二区三区| 欧美性猛交xxxx黑人|