ASP.NET MVC WEB API必知必會知識點總結

來源:互聯網
上載者:User

標籤:

 一、理解WEB API:提供基於RESTful架構的WEB服務,通過HTTP要求方法(GET, PUT, POST, DELETE)映射到伺服器端相應的ACTION方法(CRUD)。

RESTful架構:

(1)每一個URI代表一種資源;
(2)用戶端和伺服器之間,傳遞這種資源的某種表現層;
(3)用戶端通過四個HTTP動詞,對伺服器端資源進行操作,實現"表現層狀態轉化"。


HTTP 的四個主要方法 (GET, PUT, POST, DELETE) 按照下列方式映射為 CURD 操作:

GET 用於擷取 URI 資源的進行展示, GET 操作不應對服務端有任何影響; 

PUT 用於更新 URI 上的一個資源, 如果服務端允許, PUT 也可以用於建立一個資源;
POST 用於建立 資源, 服務端在指定的 URI 上建立一個新的對象, 將新資源的地址作為響應訊息的一部分返回;
DELETE 用於刪除指定的 URI 資源。

二、WEB API特點:

1.CONTROL類繼承自ApiController抽象類別;

2.註冊路由時一般無需指定ACTION節點,ACTION方法名稱一般都包含HTTP要求方法名名稱,路由系統通過HTTP要求方法自動尋找與之相應的ACTION方法並執行;

3.ACTION方法傳回值一般為:JSON、XML或一般值對象

三、實現發送GET, PUT, POST, DELETE HTTP要求方法

1.通過JQUERY.AJAX方法指定TYPE類型來實現GET, PUT, POST, DELETE HTTP要求方法; 

2.直接存取URL或將表單的METHOD方法設為GET,則可實現GET  HTTP要求方法;

3.將表單的METHOD方法設為POST,則可實現POST  HTTP要求方法;

4.PUT、DELETE除第一種方法外,只能通過先在服務端重寫HTTP要求方法(自訂HttpMessageHandler來實現),然後再在用戶端請求報文頭指定“X-HTTP-Method-Override

”值為PUT或DELETE來實現;具體實現方法詳見:如果調用ASP.NET Web API不能發送PUT/DELETE請求怎麼辦? 

5.在註冊WEB API路由規則時指定ACTION節點;

 四、WEB API請求與服務端處理實現方法:

1.GET ALL方法:

用戶端:

 $("#Button1").click(function () {                $.getJSON("@Url.Content("~/api/values")", function (data) {                    var rs = "";                    $.each(data, function () {                        rs += this + ",";                    })                    alert(data);                    showResult(rs);                })    });

伺服器端:

        // GET api/values        public IEnumerable<string> Get()        {            return new string[] { "value1", "value2" };        }

2.GET ONE方法:

用戶端:

            $("#Button2").click(function () {                $.getJSON("@Url.Content("~/api/values/5")", function (data) {                    alert(data);                    showResult(data);                })            });

伺服器端:

        // GET api/values/5        public string Get(int id)        {            return "value is " + id.ToString();        }

3.POST CREATE方法:(注意以下用戶端中的第幾種方法就對應伺服器端的第幾種方法)

用戶端:

//第一種:$("#Button1").click(function () {                $.post("@Url.Content("~/api/values")", {name:‘zwj‘,age:29},function (data) {                    alert(data);                    showResult(data);                })            });//第二種: $("#Button3").click(function () {                $.ajax("@Url.Content("~/api/values/1")", {                    type:‘post‘,                    data:JSON.stringify({ name: ‘zwj‘, age: 29 }),                    contentType: ‘application/json‘,                    //dataType: ‘json‘,                    success: function (result, status, xhr) {                        alert(result);                        showResult(result);                    }                })            });

伺服器端:

//第一種方法:        public string Post()        {            string s = "";            HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"];//擷取傳統context                 HttpRequestBase request = context.Request;//定義傳統request對象            for (int i = 0; i < request.Form.Keys.Count; i++)            {                s += string.Format("{0}={1}<br/>", request.Form.Keys[i], request.Form[i]);            }                return "Post values:" + s;        }//第二種方法:        public string Post([FromBody]Person p)        {            return string.Format("Put values:name:{0},age:{1}" + p.Name,p.Age);        }

4.PUT UPDATE方法:

 用戶端方法與POST方法相同,只是TYPE指定為:PUT;

 伺服器端與POST方法相同;

5.DELETE 方法:

 用戶端方法與GET方法相同,只是TYPE指定為:DELETE;

 伺服器端與GET方法相同;

也參見這篇文章:ASP.NET MVC學習系列(二)-WebAPI請求 

ASP.NET MVC WEB API必知必會知識點總結

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.