Asp.Net提供的Web-Api是一个很好用的Api工具,很头疼的是极少有零基础入门教程。让我们一起学习吧!看之前我觉得你需要有C#基础知识,Http数据请求和响应的基础知识,html基础知识。
1.创建工程。打开vs ,我的是2013版本,新建一个Asp.Net MVC 4 web 应用程序。
2.选择web -api模板,web -api全称太麻烦了,以后简称api吧。
现在,一个api工程就建好了。
3.在解决方案的models文件夹上右键新建一个model类
这里,我新建了一个学生类:
public class Student
{
public int Id
{
get; set;
}
public string Name
{
get; set;
}
public char Sex
{
get;set;
}
public int Age
{
get;set;
}
public Student(int id,string name,char sex,int age)
{
this.Id = id;
this.Name = name;
this.Sex = sex;
this.Age = age;
}
}
Tips:其中只是设置了几个属性,一个构造函数。这几个属性有点C#基础的话都能看懂,不多解释了。我们来说说为什么创建了一个Model类。实际上和普通的类没有什么差别,就相当于我们封装了一个类便于管理是一个意思。所以把一个对象的属性整合起来构成一个Model也就是模型的意思,实际上还是用于封装。
4.在解决方案的controller上右键新建一个MVC 4 controller
Tips:什么是Controller,从来没听说过啊,作为只有C#基础的小白的我也着实蛋疼,不过查阅了好多资料还不如自己多琢磨一下案例。。。这里的Controller可以理解为管理工具,这个工具是用来和客户端进行交互的。既然你能找到web-api,你就一定知道它是用来干啥的----作为服务端提供给客户端数据交互的。所以这个类就是用于和客户端交互的,当然是基于HTTP语言的交互啦!
5.这里,我们需要有数据交互,所以创建了一个静态链表,并在静态构造函数中实例化初始化了一下。
public class StudentController : ApiController
{
private static List<Student> list=null;
static StudentController()
{
list = new List<Student>()
{
new Student(1,"zhangsan",'男',20),
new Student(2,"lisi",'女',21),
new Student(3,"wangwu",'男',22),
new Student(4,"zhaoliu",'女',23)
};
}
}
6.我们开始写方法了:首先,HTTP请求的时候基本上会有GET(客户端获取数据)、POST(客户端添加数据)、PUT(客户端修改数据)、DELETE(客户端删除数据)请求(还有其他的,自己查阅相关资料吧)。
先来看一个GET操作,也就是客户端获取数据的请求,我们的服务器端Controller会来处理。
//用于获取所有数据
// GET: /api/Student/
public IEnumerable<Student> GetStudent()
{
return list;
}
//用于获取符合id的数据
// GET: /api/Student/id
public Student GetStudent(int id)
{
return list.Where((s) => s.Id == id).SingleOrDefault();
}
这里写了两个函数,你会发现这两个函数有个共同特点就是函数名一样的,都是Get开头的,并且后缀都是Student,好熟悉的名字,当然了,我们创建的Controller的名字就是StudentController,就是它。
函数里面用到了LinQ技术,不会的话查阅相关资料吧,这些都是C#的基础知识。当然也可以采用普通不过的方法。
接下来,我们写添加数据的函数没错,命名肯定是PostStudent!
//用于添加数据
// POST: /api/Student/
public void PostStudent( [FromBody] Student value)
{
list.Add(value);
}
这里用到了一个参数,前面加了【FromBody】这句话就是一个修饰,意思是具体的数据来源于客户端Post请求的正文部分。
下面是put修改数据
//用于修改数据
// PUT: /api/Student/id
public void PutStudent(int id, [FromBody] Student value)
{
list.Remove(list.Where((p) => p.Id == id).Single());
list.Add(value);
}
最后是Delete删除数据
//用于删除数据
// DELETE: /api/Student/id
public void DeleteStudent(int id)
{
list.Remove(list.Where((p) => p.Id == id).Single());
}
7.快开始测试吧!
端口号可能有所不同,大家根据自己的端口号进行测试。
本次教程至此结束!请关注后续教程!