·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> ASP.NET网站开发 >> WebAPI

WebAPI

作者:佚名      ASP.NET网站开发编辑:admin      更新时间:2022-07-23

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:ApiController11     {12         //Get:/Students13         public IEnumerable<Students> Get()14         {15             return Students.StudentsStorage;16         }17         //Get:/Students/218         public Students Get(int item)19         {20             return Students.StudentsStorage.FirstOrDefault(s => s.Id.Equals(item));21         }22         //POST:/Students23         public void Post(Students model)24         {25             Students.StudentsStorage.Add(model);26         }27         //Put:/Students28         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/140         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方法