WebApi及Fiddler工具


WebApi及Fiddler工具

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狀態碼知識也沒有介紹到。代碼寫得也不夠嚴謹,比如索引訪問越界不存在等錯誤或異常處理。

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

 

 
分類:  DotNet 2015


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM