初始WebApi(1)

如果你要问我WebApi是干嘛,我只能说它是的给数据。哈哈哈哈哈,这几天也才刚刚了解了解关于WebApi的知识,今天就来谈谈吧。

1.创建WebApi项目

第一步:选择ASP.NET Web应用程序

初始WebApi(1)_第1张图片

第二步:选择WebApi,记得要取消勾选Https配置,点击创建

初始WebApi(1)_第2张图片

 第三步:创建完成后形成的项目结构

这里和ASP.NET MVC的目录结构看起来有点类似,其实还是有很大的不同的

在这里View视图其实不起什么作用。

初始WebApi(1)_第3张图片

下面来看看目录结构中有什么东西。

初始WebApi(1)_第4张图片

 可以看到自动创建了两个控制器分别是Home和Values(这里的Student和User是我自己创建的)

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

Home控制器:

初始WebApi(1)_第5张图片

Values控制器:

与Home控制器最大的区别就在于继承的控制器前者是Controller、后者是ApiController

可以看到这里分别有几个方法:Get(查询)、Post(新增)、Put(修改)、以及Delete(删除)

[FromBody]在这里的作用就是只接受从data中传递过来的参数,也就是其他传参方法比如QueryString形式的方法无法获取。

为什么系统自动帮我们创建了这四个方法呢?

 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指定数据来源必须是data中的数据而不是从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 }

这里的原有还有追溯到创建WebApi项目的时候

那就是RESTful HTTP服务模板

通过RESTful语义定义的四个方法,可以通过ajax请求进行调用并获得数据。

初始WebApi(1)_第6张图片

 下面我们去创建一个普通的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使用规则和约束

 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         /// 
15         /// Restful格式的数据提供方式 方法名要带着Get
16         /// Restful风格节省了方法名的编写,但是不适合~Login登录、上传 、修改头像、点赞等业务功能的实现
17         /// Restful只适合对某一个表的增删改查
18         /// 
19         /// 
20         public Student Get()
21         {
22             return new Student() { Id = 1, Name = "黄朝" };
23         }
24         /// 
25         ///Get不能省略
26         /// 
27         /// 
28         /// 
29         public string Get(string name)
30         {
31             return "参数是:" + name;
32         }
33 
34         public string GetAddress(string addname) {
35             return "地址参数是:" + addname;
36         }
37         /// 
38         /// 在这里post是做新增操作
39         /// 
40         /// 学生对象
41         public void Post(Student stu)
42         { 
43             
44         }
45         /// 
46         /// 修改操作
47         /// 
48         /// 修改的id
49         /// 修改的对象
50         public void Put(int id,Student stu)
51         { 
52             
53         }
54         /// 
55         /// 删除
56         /// 
57         /// 根据id的删除
58         public void Delete(int id)
59         { 
60             
61 
62         }
63     }
64 }

Html页:

根据type不同的参数,调用后台Api的数据。可以作为对象参数传递也可以根据id作为参数传递




    "utf-8" />
    
    
    


        

以上就是我对初次了解WebApi的一个学习总结,如果以上内容存在不足或错误代码,请指出,谢谢。

你可能感兴趣的:(初始WebApi(1))