第04章 ASP.NET 5 :WebApi及Fiddler工具

來源:互聯網
上載者:User

標籤:

1.概述

    曾經有人問:asp.net mvc和asp.net webapi區別在哪?這個其實不好回答的。可能因為mvc模式盛行的原因,webapi顯得孤芳自賞了,讓人覺得它是雞肋。其實webapi應該比mvc更符合web應用與開發本質,功能也不弱於mvc。

    mvc4和5出現時,才有webapi出現,至於它為何出現?我們沒有必要研究這些,能玩好它就行了。這時的webapi和mvc的最大區別是路由管道不一致,各實現自己的一套。到了mvc6時代,微軟也意識到,代碼基本差不多,何不重用?所以,現在mvc6已經統一了mvc和webapi路由。

    說到這,可能還是覺得mvc和webapi機制和實現起來,看起來長得很象呀。是的,沒錯。其實webapi最核心的是使用REST風格。關於何謂REST?建議你另行瞭解。這裡大概說一下,webapi中的Action方法名是使用HTTP方法名或其首碼,當然也可以不按照這些,在方法上標註HTTP方法名特性也行的。這麼說,有些繞了,抱歉!

2.建立項目

    為了示範說明,還是建立一個ASP.NET 5項目模板的 GiveCase.WebApies: 

   

    註:已經有了Values控制器樣本了。

3.Fiddler

    這個工具對類比HTTP請求調試很有協助的,建議會使用。官方網址http://www.telerik.com/fiddler

4.控制器

    開啟Controllers\ValuesController.cs並修改為: 

using System.Collections.Generic;using Microsoft.AspNet.Mvc;namespace GiveCase.WebApies.Controllers{    [Route("api/[controller]")]    public class ValuesController : Controller    {        //類比資料        static List<string> data = InitList();        private static List<string> InitList()        {            var list = new List<string> { "value1", "value2", "value3" };            return list;        }        // GET: api/values        [HttpGet]        public IEnumerable<string> Get()        {            return data;        }        // GET api/values/5        [HttpGet("{id}")]        public string Get(int id)        {            return data[id];        }        // POST api/values        [HttpPost]        public void Post([FromBody]string value)        {            data.Add(value);        }        // PUT api/values/5        [HttpPut("{id}")]        public void Put(int id, [FromBody]string value)        {            data[id] = value;        }        // DELETE api/values/5        [HttpDelete("{id}")]        public void Delete(int id)        {            data.RemoveAt(id);        }    }}

4.測試示範

   運行網站,使用fiddler工具。

   1.get方法查詢所有

  

   Execute執行結果:

  

   2.get方法查詢單個

  

   註:索引是從0開始的,所以查詢id為1的結果是集合的第二個元素。

   3.post方法添加一個

   在要求標頭加上:

   Accept:application/xml
   Content-Type:application/json   

       

   執行成功後(注意狀態代碼是204,其實應該是201,後續文章再糾正):

  

   再用前面說的get方法查詢所有:

  

   ok!添加成功!

   4.put方法修改一個

   我們示範把value1改為value5

   

   執行後,再用get方法查詢所有:

  

   OK,也修改成功!

   5.delete方法刪除一個

   我們示範把第4個value4刪除

  

   執行後,再用get方法查詢所有:

   

   ok,值為value4沒了!

5.小結

    本章內容也不多,只是操作字串集合,也沒有把它輸出到html頁面上,更沒有示範使用實體集合(這是實際應用必須的)。關於http狀態代碼知識也沒有介紹到。代碼寫得也不夠嚴謹,比如索引訪問越界不存在等錯誤或異常處理。

    我們學習知識,慢慢來吧!先到此為止!

 

第04章 ASP.NET 5 :WebApi及Fiddler工具

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.