日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

初始WebApi(1)

 頭號碼甲 2021-04-04

如果你要問我WebApi是干嘛,我只能說它是的給數(shù)據(jù)。哈哈哈哈哈,這幾天也才剛剛了解了解關(guān)于WebApi的知識,今天就來談?wù)劙伞?/p>

1.創(chuàng)建WebApi項目

第一步:選擇ASP.NET Web應(yīng)用程序

第二步:選擇WebApi,記得要取消勾選Https配置,點擊創(chuàng)建

 第三步:創(chuàng)建完成后形成的項目結(jié)構(gòu)

這里和ASP.NET MVC的目錄結(jié)構(gòu)看起來有點類似,其實還是有很大的不同的

在這里View視圖其實不起什么作用。

下面來看看目錄結(jié)構(gòu)中有什么東西。

 可以看到自動創(chuàng)建了兩個控制器分別是Home和Values(這里的Student和User是我自己創(chuàng)建的)

進去看看。需要注意的是這里Home和下面介紹的Values是不同的控制器,哪里不同呢?等一下就知道啦

Home控制器:

Values控制器:

與Home控制器最大的區(qū)別就在于繼承的控制器前者是Controller、后者是ApiController

可以看到這里分別有幾個方法:Get(查詢)、Post(新增)、Put(修改)、以及Delete(刪除)

[FromBody]在這里的作用就是只接受從data中傳遞過來的參數(shù),也就是其他傳參方法比如QueryString形式的方法無法獲取。

為什么系統(tǒng)自動幫我們創(chuàng)建了這四個方法呢?

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Net;
 5 using System.Net.Http;
 6 using System.Web.Http;
 7 
 8 namespace Demo.Controllers
 9 {
10     //WebAPI控制器
11     public class ValuesController : ApiController
12     {
13         // GET api/values
14         public IEnumerable<string> Get()
15         {
16             return new string[] { "value1", "value2" };
17         }
18 
19         // GET api/values/5
20         public string Get(int id)
21         {
22             return "value";
23         }
24 
25         // POST api/values
26         public void Post([FromBody]string value)
27         {
28         }
29         //FromBody指定數(shù)據(jù)來源必須是data中的數(shù)據(jù)而不是從QueryString過來的
30         // PUT api/values/5
31         public void Put(int id, [FromBody]string value)
32         {
33         }
34 
35         // DELETE api/values/5
36         public void Delete(int id)
37         {
38         }
39     }
40 }

這里的原有還有追溯到創(chuàng)建WebApi項目的時候

那就是RESTful HTTP服務(wù)模板

通過RESTful語義定義的四個方法,可以通過ajax請求進行調(diào)用并獲得數(shù)據(jù)。

 下面我們?nèi)?chuàng)建一個普通的Html頁面和一個Student Api控制器以及一個Student類

Student類:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Web;
 5 
 6 namespace Demo.Models
 7 {
 8     public class Student
 9     {
10         public int Id { get; set; }
11         public string Name { get; set; }
12     }
13 }

Student控制器方法:

在注釋中我也備注了RESTful使用規(guī)則和約束

 1 using Demo.Models;
 2 using System;
 3 using System.Collections.Generic;
 4 using System.Linq;
 5 using System.Net;
 6 using System.Net.Http;
 7 using System.Web.Http;
 8 
 9 namespace Demo.Controllers
10 {
11     //WebAPI控制器
12     public class StudentController : ApiController
13     {
14         /// <summary>
15         /// Restful格式的數(shù)據(jù)提供方式 方法名要帶著Get
16         /// Restful風(fēng)格節(jié)省了方法名的編寫,但是不適合~Login登錄、上傳 、修改頭像、點贊等業(yè)務(wù)功能的實現(xiàn)
17         /// Restful只適合對某一個表的增刪改查
18         /// </summary>
19         /// <returns></returns>
20         public Student Get()
21         {
22             return new Student() { Id = 1, Name = "黃朝" };
23         }
24         /// <summary>
25         ///Get不能省略
26         /// </summary>
27         /// <param name="name"></param>
28         /// <returns></returns>
29         public string Get(string name)
30         {
31             return "參數(shù)是:" + name;
32         }
33 
34         public string GetAddress(string addname) {
35             return "地址參數(shù)是:" + addname;
36         }
37         /// <summary>
38         /// 在這里post是做新增操作
39         /// </summary>
40         /// <param name="stu">學(xué)生對象</param>
41         public void Post(Student stu)
42         { 
43             
44         }
45         /// <summary>
46         /// 修改操作
47         /// </summary>
48         /// <param name="id">修改的id</param>
49         /// <param name="stu">修改的對象</param>
50         public void Put(int id,Student stu)
51         { 
52             
53         }
54         /// <summary>
55         /// 刪除
56         /// </summary>
57         /// <param name="id">根據(jù)id的刪除</param>
58         public void Delete(int id)
59         { 
60             
61 
62         }
63     }
64 }

Html頁:

根據(jù)type不同的參數(shù),調(diào)用后臺Api的數(shù)據(jù)??梢宰鳛閷ο髤?shù)傳遞也可以根據(jù)id作為參數(shù)傳遞

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
    <script src="Scripts/jquery-3.3.1.js"></script>
    <script>
        $.ajax({
            url: "/api/Student",
            type: "get"
        }).done(function (data) { console.log(data) })

        //$.ajax({
        //    url: "/api/Student",
        //    type: "post",
        //    data: {
        //        ID: 1,
        //        Name:"abc"
        //    }
        //}).done(function () {
        //    console.info("成功");
        //}).fail(function () {
        //    console.info("失敗");
        //})

        ///api/Student/1 1為Id
        //$.ajax({
        //    url: "/api/Student/1",
        //    type: "put",
        //    data: {
        //        ID: 12,
        //        Name:"lisi"
        //    }
        //}).done(function () {
        //    console.info("成功")
        //}).fail(function () {
        //    console.info("失敗")
        //})

        //$.ajax({
        //    url:"/api/Student/1"
        //    type: "delete"
        //}).done(function () {rl: "/api/Student/1",
        //    console.info("成功")
        //}).fail(function () {
        //    console.info("失敗")
        //})
</script>
</head>
<body>
        
</body>
</html>

以上就是我對初次了解WebApi的一個學(xué)習(xí)總結(jié),如果以上內(nèi)容存在不足或錯誤代碼,請指出,謝謝。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多