WebAPI

WebAPI 是完全基于RESTful标准的(HTTP协议), WCF和WebService(SOAP协议)

  那么什么是RESTful

  RESTful是面向资源,一个地址代表一个资源。

  http://www.demo.com/student 可以代表学生的资源

  http://www.demo.com/student/张三 可以代表一个叫张三学生的资源

WebAPI就是实现RESTful这个思想的一个框架,建立一个HTTP服务可以被各种客户端(例如:浏览器,智能手机终端,桌面客户端等)来调用的框架。它并不是ASP.NET MVC框架的一部分,它作为ASP.NET平台的一部分可以用于MVC,Web Form或者是作为一个独立的服务存在。

下面我们来构建一个最简单的webAPI

首先新建一个空的web应用程序

用神器NuGet下载webAPI程序包

创建一个实体类作为数据源

 1 using System;
 2 using System.Collections;
 3 using System.Collections.Generic;
 4 using System.Linq;
 5 using System.Web;
 6 namespace WebAPI.Models
 7 {
 8     public class Students
 9     {
10         public int Id { get; set; }
11         public string Name { get; set; }
12         public int Age { get; set; }
13         public static IList<Students> StudentsStorage = new List<Students>
14         {
15             new Students {Id = 1, Name = "张三", Age = 20},
16             new Students {Id = 2, Name = "李四", Age = 21},
17             new Students {Id = 3, Name = "王五", Age = 22},
18         };
19     }
20 }

新建一个StudentsController类使得它继承ApiController

 1 using System;
 2 using System.Collections;
 3 using System.Collections.Generic;
 4 using System.Linq;
 5 using System.Web;
 6 using System.Web.Http;
 7 using WebAPI.Models;
 8 namespace WebAPI.Cotntrollers
 9 {
10     public class StudentsController:ApiController
11     {
12         //Get:/Students
13         public IEnumerable<Students> Get()
14         {
15             return Students.StudentsStorage;
16         }
17         //Get:/Students/2
18         public Students Get(int item)
19         {
20             return Students.StudentsStorage.FirstOrDefault(s => s.Id.Equals(item));
21         }
22         //POST:/Students
23         public void Post(Students model)
24         {
25             Students.StudentsStorage.Add(model);
26         }
27         //Put:/Students
28         public void Put(int item, Students model)
29         {
30             var exitst = Students.StudentsStorage.FirstOrDefault(s => s.Id.Equals(item));
31             if (exitst != null)
32             {
33                 model.Id = exitst.Id;
34                 
35             }
36             Students.StudentsStorage.Remove(exitst);
37             Students.StudentsStorage.Add(model);
38         }
39         //DElETE:student/1
40         public void Delete(int item)
41         {
42             var exitst = Students.StudentsStorage.FirstOrDefault(s => s.Id.Equals(item));
43             Students.StudentsStorage.Remove(exitst);
44         }
45     }
46 }

新建一个Global.asax 配置WebAPI路由

1  protected void Application_Start(object sender, EventArgs e)
2         {
3             //WebAPI路由
4             GlobalConfiguration.Configuration.Routes.MapHttpRoute(
5                 "default_api", 
6                 "{controller}/{item}",
7                defaults: new { item = RouteParameter.Optional });
8         }

  那么好了一个最简单的WebAPI就好了 下面我们来测试一下这个WebAPI

为什么的到的是XML我们来看一下

 从这可以看到我们发送的Content-Type 是 appliction/xml

 那我们如果需要Json格式的数据 怎么办 其实就是把请求的Content-Type改成appliction/json 我们就可以拿到json格式的数据 

 还有通过这个工具我们可以测试我们刚刚写的WebAPI  GET POST PUT DELETE方法

 

 

转载于:https://www.cnblogs.com/mjxup/p/4470062.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值