WebAPI_从入门到精通

合集下载

WebApi简介

WebApi简介

WebApi简介在WebApi中,⽅法名以Get开头,WebApi会⾃动默认之歌请求是Get请求,⽽如果你以其他名称开头⽽⼜不标注这个⽅法的请求⽅式,那么这个时候服务器虽然找到了这个⽅法,但是由于请求⽅式不确定,所以直接返回给你405---⽅法不被允许的错误最后结论:所有的WebApi⽅法最好是加上请求的⽅式[HttpGet]/[HttpPost]/[HttpPut]/[HttpDelete],不要偷懒,这样既能防⽌类似的错误,也有利于⽅法的维护,被⼈⼀看就知道这个⽅法是什么请求⽹站在启动时执⾏Application_Start(),给Route增加地址规则,请求进来时,会经过路由匹配找到合适的控制器。

那怎么找Action? 1、根据HttpMethod找⽅法---⽤的⽅法名字开头,Get就是对应的Get请求 2、如果名字不是Get开头,可以加上[HttpGet] 3、按照参数找最吻合其实资源是这样定义的,不是⼀个学⽣,⽽可能是⼀个学校。

可能是⼀个订单----多件商品,⼀次查询,订单-商品,数据之间嵌套关系很复杂。

还有个特性路由,可以单独定制(config.MapHttpAttributeRoutes()、标机特性)IOC容器+配置⽂件初始化控制器也要注⼊--完成容器和WebApi框架融合--实现IDependencyResolver,将容器放进去--初始化config.DependencyResolver 换成⾃定义的Resolverpublic class IOCController : ApiController{private IUserService _UserService = null;public IOCController(IUserService userService){this._UserService = userService;}public string Get(int id){//IUserService service = new UserService();//IUserService service = ContainerFactory.BuildContainer().Resolve<IUserService>();return Newtonsoft.Json.JsonConvert.SerializeObject(this._UserService.Query(id));}}在WebApiConfig中加上:// Web API 配置和服务config.DependencyResolver = new UnityDependencyResolver(ContainerFactory.BuildContainer());UnityDependencyResolver:public class UnityDependencyResolver : IDependencyResolver{private IUnityContainer _UnityContainer = null;public UnityDependencyResolver(IUnityContainer container){_UnityContainer = container;}public IDependencyScope BeginScope()//Scope{return new UnityDependencyResolver(this._UnityContainer.CreateChildContainer());}public void Dispose(){this._UnityContainer.Dispose();}public object GetService(Type serviceType){try{return this._UnityContainer.Resolve(serviceType);}catch (Exception ex){Console.WriteLine(ex.Message);return null;}}public IEnumerable<object> GetServices(Type serviceType){try{return this._UnityContainer.ResolveAll(serviceType);}catch (Exception ex){Console.WriteLine(ex.Message);return null;}}}View CodeContainerFactory:///需要在nuget引⽤之后,单独引⽤Unity.Configuration///如果有AOP扩展,还需要引⽤Unity.Interception.Configuration///因为我们是⽤配置⽂件来做的配置///</summary>public class ContainerFactory{public static IUnityContainer BuildContainer(){//get//{return _Container;//}}private static IUnityContainer _Container = null;static ContainerFactory(){ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();fileMap.ExeConfigFilename = bine(AppDomain.CurrentDomain.BaseDirectory + "CfgFiles\\Unity.Config");//找配置⽂件的路径Configuration configuration = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);UnityConfigurationSection section = (UnityConfigurationSection)configuration.GetSection(UnityConfigurationSection.SectionName);_Container = new UnityContainer();section.Configure(_Container, "WebApiContainer");}}View CodeBasic授权认证&权限Filter权限认证,是需要的,因为是Http地址,如果不加权限认证,别⼈不就可以直接拿到这边的请求去进⾏操作了,然后再去猜测别的WebApi。

webapi方法注释

webapi方法注释

webapi方法注释Web API是一种用于构建和提供Web服务的技术,它允许应用程序通过HTTP协议进行通信和交互。

在本文中,将介绍几种常用的WebAPI方法,并讨论它们的特点和用法。

1. GET方法:GET方法用于从服务器获取资源。

它是最常用的API 调用方法之一。

通过GET方法,应用程序可以从服务器获取数据,并将其展示给用户。

GET方法的特点是安全、幂等和无副作用。

安全是指该方法不会对服务器上的资源进行修改;幂等是指多次调用该方法所产生的效果与一次调用的效果相同;无副作用是指该方法不会对服务器和数据库产生任何影响。

GET方法通常用于获取资源的信息,比如读取博客文章的内容或获取用户的个人资料。

2. POST方法:POST方法用于向服务器提交数据。

通过POST方法,应用程序可以向服务器发送数据,并请求服务器执行某种操作。

与GET方法不同,POST方法具有副作用,即会对服务器上的资源进行修改。

POST方法的特点是非幂等和有副作用。

非幂等是指多次调用该方法所产生的效果与一次调用的效果不同;有副作用是指该方法会对服务器和数据库产生影响。

POST方法通常用于创建新资源或修改现有资源,比如发布新的博客文章或更新用户的个人资料。

3. PUT方法:PUT方法用于更新服务器上的资源。

通过PUT方法,应用程序可以向服务器发送要更新的数据,并请求服务器更新指定的资源。

PUT方法与POST方法类似,都具有副作用,但PUT方法是幂等的,即多次调用该方法所产生的效果与一次调用的效果相同。

PUT方法通常用于更新资源的全部内容,比如修改博客文章的标题或更新用户的密码。

4. PATCH方法:PATCH方法用于部分更新服务器上的资源。

通过PATCH方法,应用程序可以向服务器发送要更新的数据,并请求服务器部分更新指定的资源。

与PUT方法不同,PATCH方法只更新资源的部分内容,而不是替换整个资源。

PATCH方法的使用场景是在不影响其他属性的情况下,更新资源的某些属性。

第01章认识WebAPI

第01章认识WebAPI

《WebAPI》教案第1章认识WebAPI1.本章主要目标●WebAPI简介●建立简单的WebAPI项目●调用WebAPI1.2本章重点●建立WebAPI项目●调用WebAPI1.3本章难点●建立WebAPI项目●调用WebAPI2.知识点回顾: [10分钟]●无3.课程知识点讲解[100分钟]一、WebAPI简介Web API在完整框架中地位如下图,与SignalR一起同为构建Service而服务的框架。

Web API负责构建http常规服务,而SingalR主要负责的是构建实时服务,例如股票,聊天室,在线游戏等实时性要求比较高的服务。

Web API最重要的是可以构建面向各种客户端的服务。

另外与WCF REST Service不同在于,Web API利用Http协议的各个方面来表达服务(例如 URI/request response header/caching/versioning/content format),因此就省掉很多配置。

Web API的主要功能1. 支持基于Http verb (GET, POST, PUT, DELETE)的CRUD (create, retrieve, update, delete)操作通过不同的http动作表达不同的含义,这样就不需要暴露多个API来支持这些基本操作。

2. 请求的回复通过Http Status Code表达不同含义,并且客户端可以通过Accept header来与服务器协商格式,例如你希望服务器返回JS ON格式还是XML格式。

3. 请求的回复格式支持JSON,XML,并且可以扩展添加其他格式。

4. 原生支持OData。

5. 支持Self-host或者IIS host。

6. 支持大多数MVC功能,例如Routing/Controller/Action Result/Filter/Model Builder/IOC Container/Dependency Injection。

WebAPI_从入门到精通

WebAPI_从入门到精通

第一章.实例快速上手 4.5新特性WebAPI从入门到精通在新出的MVC4中,增加了WebAPI,用于提供REST风格的WebService,新生成的WebAPI项目和典型的MVC项目一样,包含主要的Models、Views、Controllers等文件夹和Global.asax文件。

Views对于WebAPI来说没有太大的用途,Models中的Model主要用于保存Service和Client交互的对象,这些对象默认情况下会被转换为Json格式的数据迚行传输,Controllers中的Controller对应于WebService来说是一个Resource,用于提供服务。

和普通的MVC 一样,Global.asax用于配置路由规则。

(一)环境准备建议使用VS2012以上版本创建WebAPI,如果是使用VS2010,需要安装VS2010 SP1升级包,MVC4升级包,打开VS2012创建如下:第一步:新建 Web应用程序第二步:建议WebAPI新生成的WebAPI项目和典型的MVC项目一样,包含主要的Models,Views,Controllers等文件夹和Global.asax文件注意:再次强调Views对于WebAPI来说没有太大的用途,Models中的Model主要用于保存Service和Client交互的对象,这些对象默认情况下会被转换为Json格式的数据进行传输,Controllers中的Controller对应于WebService来说是一个Resource,用于提供服务。

和普通的MVC一样,Global.asax用于配置路由规则(二)Models和WCF中的数据契约形成鲜明对比的是,MVC WebAPI中的Model就是简单的POCO,没有任何别的东西,如,你可以创建如下的Model public class UserModel{public int Id { get; set; }public string UserName { get; set; }public string PassWord { get; set; }}注意:Model必须提供public的属性,用于json或xml反序列化时的赋值(三)ControllersMVC WebAPI中的Controllers和普通MVC的Controllers类似,不过不再继承于Controller,而改为继承API的ApiController,一个Controller可以包含多个Action,这些Action响应请求的方法与Global中配置的路由规则有关,在后面结束Global时统一说明(四)Global默认情况下,模板自带了两个路由规则,分别对应于WebAPI和普通MVC的Web请求,默认的WebAPI路由规则如下1 routes.MapHttpRoute(2 name: "DefaultApi",3 routeTemplate: "api/{controller}/{id}",4 defaults: new { id = RouteParameter.Optional }5 );可以看到,默认路由使用的固定的api作为Uri的先导,按照微软官方的说法,用于区分普通Web请求和WebService的请求路径:可以看到,默认的路由规则只指向了Controller,没有指向具体的Action,因为默认情况下,对于Controller中的Action的匹配是和Action的方法名相关联的:具体来说,如果使用上面的路由规则,对应下面的Controller:public class UserController : ApiController{public List<UserModel> allModeList = new List<UserModel>() {new UserModel(){ Id=1,UserName="zhang", PassWord="123"},new UserModel(){ Id=2,UserName="lishi", PassWord="123456"},new UserModel(){ Id=3,UserName="wang", PassWord="1234567"}};//Get api/User/public IEnumerable<UserModel> GetAll(){return allModeList;}//Get api/User/1public IEnumerable<UserModel> GetOne(int id) {return allModeList.FindAll((m) => { return m.Id == id; });}//POST api/User/public bool PostNew(UserModel user){try{allModeList.Add(user);return true;}catch {return false;}}//Delete api/User/public int DeleteAll(){return allModeList.RemoveAll((mode) => { return true; });}//Delete api/User/1public int DeleteOne(int id) {return allModeList.RemoveAll((m) => { return m.Id == id; });}//Put api/Userpublic int PutOne(int id, UserModel user){List<UserModel> upDataList = allModeList.FindAll((mode) => { return mode.Id == id; });foreach (var mode in upDataList){mode.PassWord = user.PassWord;erName = erName;}return upDataList.Count;}}则,会有下面的对应关系:URL HttpMethod 对应的Action名/api/User GET GetALL/api/User/1 GET GetOne/api/User POST PostNew/api/User/1 DELETE DeleteOne/api/User DELETE DeleteALL/api/User PUT PutOne(五)客户端JS调用function getAll() {$.ajax({url: "api/User/",type: 'GET',success: function (data) {document.getElementById("modes").innerHTML = "";$.each(data, function (key, val) {var str = erName + ': ' +val.PassWord;$('<li/>', { html:str }).appendTo($('#modes'));});}}).fail(function (xhr, textStatus, err) {alert('Error: ' + err);});}function find() {$.ajax({url: "api/User/1" ,type: 'GET',success: function (data) {document.getElementById("modes").innerHTML = "";$.each(data, function (key, val) {var str = erName + ': ' +val.PassWord;$('<li/>', { html:str }).appendTo($('#modes'));});}}).fail(function (xhr, textStatus, err) {alert('Error: ' + err);});}function add() {$.ajax({url: "api/User/",type: "POST",dataType: "json",data: { "Id":4,"UserName": "admin", "PassWord": "666666"},success: function (data) {getAll();}}).fail(function (xhr, textStatus, err) {alert('Error: ' + err);});}function removeUser() {$.ajax({url: "api/User/3",type: 'DELETE',success: function (data) {document.getElementById("modes").innerHTML = "";getAll();}}).fail(function (xhr, textStatus, err) {alert('Error: ' + err);});}function removeAll() {$.ajax({url: "api/User/",type: 'DELETE',success: function (data) {document.getElementById("modes").innerHTML = "";getAll();}}).fail(function (xhr, textStatus, err) {alert('Error: ' + err);});}function udpate() {$.ajax({url: "api/User/1",type: 'PUT',dataType: "json",data: { Id: 1, "UserName": "admin", "PassWord": "666666" },success: function (data) {document.getElementById("modes").innerHTML = "";getAll();}}).fail(function (xhr, textStatus, err) {alert('Error: ' + err);});}这样就实现了最基本的CRUD操作。

WebAPI--入门--(一)ASP.NETWebAPI2(C#)入门

WebAPI--入门--(一)ASP.NETWebAPI2(C#)入门

WebAPI--⼊门--(⼀)WebAPI2(C#)⼊门HTTP不仅仅是为了提供⽹页。

它也是构建公开服务和数据的API的强⼤平台。

HTTP简单,灵活,⽆所不在。

⼏乎任何您可以想到的平台都有⼀个HTTP库,所以HTTP服务可以覆盖⼴泛的客户端,包括浏览器,移动设备和传统的桌⾯应⽤程序。

Web API是在.NET Framework之上构建Web API的框架。

在本教程中,您将使⽤ Web API创建返回产品列表的Web API。

本教程中使⽤的软件版本Web API 2创建⼀个Web API项⽬在本教程中,您将使⽤ Web API创建返回产品列表的Web API。

前端⽹页使⽤jQuery显⽰结果。

启动Visual Studio并从“ 开始”页⾯选择“ 新建项⽬”。

或者,从⽂件菜单中选择新建,然后选择项⽬。

在“ 模板 ”窗格中,选择“已安装的模板”并展开Visual C#节点。

在Visual C#下,选择Web。

在项⽬模板列表中,选择 Web应⽤程序。

将项⽬命名为“ProductsApp”,然后单击“确定”。

在“ 新建项⽬ ”对话框中,选择“ 空”模板。

在“添加⽂件夹和核⼼参考”下,查看Web API。

单击确定。

注意您还可以使⽤“Web API”模板创建⼀个Web API项⽬。

Web API模板使⽤ MVC提供API帮助页⾯。

我正在使⽤本教程的空模板,因为我想显⽰没有MVC的Web API。

⼀般来说,你不需要知道 MVC来使⽤Web API。

添加模型⼀个模型是代表你的应⽤程序中的数据的对象。

Web API可以⾃动将您的模型序列化为JSON,XML或其他格式,然后将序列化数据写⼊HTTP响应消息的正⽂。

只要客户端可以读取序列化格式,就可以反序列化对象。

⼤多数客户端可以解析XML或JSON。

此外,客户端可以通过在HTTP请求消息中设置Accept头来指⽰所需的格式。

我们先来创建⼀个代表产品的简单模型。

webapi 概念

webapi 概念

webapi 概念Web API 是一种用于在互联网上创建和传输数据的标准方式。

它基于HTTP (Hypertext Transfer Protocol)协议,使用JSON(JavaScript Object Notation)或XML(eXtensible Markup Language)格式来传输数据。

Web API 是一种服务器端应用程序,它允许客户端应用程序通过HTTP 请求来访问服务器上的数据。

Web API 可以提供各种功能,例如数据存储、身份验证、文件上传和下载等。

Web API 的工作原理是,客户端向服务器发送HTTP 请求,服务器接收到请求后,处理请求并返回相应的数据。

数据可以是JSON 或XML 格式,具体取决于客户端和服务器之间的约定。

Web API 的开发通常使用RESTful(Representational State Transfer)架构风格。

RESTful 架构风格基于HTTP 协议,将Web API 视为一组可访问的资源,每个资源都有一个唯一的URL(Uniform Resource Locator)。

客户端可以通过发送HTTP 请求来访问这些资源,并获取或修改数据。

Web API 的开发还涉及到一些重要的概念,例如:1. API 版本控制:为了确保不同版本的API 之间的兼容性,可以使用URL 中的版本号来区分不同版本的API。

2. 数据传输格式:Web API 可以使用JSON 或XML 格式来传输数据。

JSON 格式通常更简洁、易读,而XML 格式则更适用于结构化数据。

3. 错误处理:Web API 需要正确处理错误情况,例如请求参数无效或服务器出现故障等。

通常可以使用HTTP 状态码来标识不同的错误情况。

4. 安全性:Web API 需要考虑安全性问题,例如防止未经授权的访问、数据加密和身份验证等。

可以使用OAuth、API Key 等机制来保护Web API 的安全性。

webapi 参数

webapi 参数

webapi 参数摘要:1.Web API 参数简介2.Web API 参数的分类3.Web API 参数的使用方法4.Web API 参数的注意事项5.Web API 参数的未来发展正文:【1.Web API 参数简介】Web API,全称Web 应用程序接口,是一种用于实现Web 服务的技术。

Web API 可以让开发者编写代码来调用第三方Web 服务,从而实现各种功能。

在Web API 中,参数是一个重要的组成部分,它们可以帮助开发者定义和控制API 的输入和输出。

【2.Web API 参数的分类】Web API 参数主要分为以下几类:(1)请求参数:请求参数是在发送请求时附加在请求中的数据。

它们通常用于表示客户端请求的详细信息,如查询条件、排序规则等。

(2)响应参数:响应参数是在服务器处理请求后返回给客户端的数据。

它们通常用于表示服务器处理结果的详细信息,如数据、状态码等。

(3)路径参数:路径参数是URL 中除域名和端口之外的部分,它们通常用于表示请求资源的唯一标识。

(4)查询参数:查询参数是在URL 中以“?”符号后跟的一系列键值对。

它们通常用于向服务器传递额外的请求信息,如搜索查询、分页参数等。

【3.Web API 参数的使用方法】在使用Web API 参数时,开发者需要遵循以下步骤:(1)阅读API 文档:开发者需要详细阅读API 的文档,了解API 的参数类型、格式和作用。

(2)构建请求:开发者需要根据API 文档中的要求,构建包含请求参数的请求。

(3)发送请求:将构建好的请求发送给服务器。

(4)解析响应:服务器处理请求后,会返回包含响应参数的响应。

开发者需要对响应进行解析,以获取所需的信息。

【4.Web API 参数的注意事项】在使用Web API 参数时,开发者需要注意以下几点:(1)参数格式:参数的格式通常为键值对,其中键表示参数名,值表示参数值。

键和值之间用“=”符号连接,多个参数之间用“&”符号连接。

【WEBAPI项目实战干货系列】-WEBAPI入门(一)

【WEBAPI项目实战干货系列】-WEBAPI入门(一)

【WEBAPI项⽬实战⼲货系列】-WEBAPI⼊门(⼀)这篇做为这个系列的第⼀篇,做基本的介绍,有经验的⼈可以直接跳到第⼆部分创建 ProductController。

创建 Web API 项⽬在这⾥我们使⽤VS2013, .NET 4.5.1创建⼀个Web API 2的项⽬选择项⽬WEB API模板, 在最下⽅的MVC主要是默认会⾃带微软的API Helper, 使⽤MVC发布在这⾥不实⽤安全这样我们⼀个项⽬就初始化好了, 这都要归功于微软强⼤的VSF5启动项⽬之后, 点击界⾯上API按钮可以看到默认创建的API这时就可以⽤上⾯的地址通过⼀些测试⼯具来测试了. 这⾥推荐使⽤, 后⾯我们也将⼴泛使⽤这款⼯具来做调试.创建我们⾃⼰的API-Products API相关操作步骤如下添加ProductController在这⾥我们设计产品相关的API URL如下, 虽然这个不完全符合RESTFul标准,如有纠结的⼈直接忽略,这⾥主要介绍如何把我们的URL定制成下⾯这个样⼦(也是我们项⽬中的样⼦):当然这⾥的API URL还有其他写法,这个有兴趣的后⾯章节可以再讨论。

我们的 Product API简单的设计为下⾯格式:添加获取产品分页API: api/products/product/getList添加获取单个产品API: api/products/product/get?productId=产品ID添加产品新增API: api/products/product/add?productId=产品ID添加产品更新API: api/products/product/update?productId=产品ID添加产品删除API: api/products/product/delete?productId=产品ID在这⾥我们在刚才新添加的ProductController⾥中实现上⾯的API[RoutePrefix("api/products")]public class ProductController : ApiController{[HttpGet, Route("product/getList")]public Page<Product> GetProductList(){throw new NotImplementedException();}[HttpGet, Route("product/get")]public Product GetProduct(Guid productId){throw new NotImplementedException();}[HttpPost, Route("product/add")]public Guid AddProduct(Product product){throw new NotImplementedException();}[HttpPost, Route("product/update")]public void UpdateProduct(Guid productId, Product product){throw new NotImplementedException();}[HttpDelete, Route("product/delete")]public void DeleteProduct(Guid productId){throw new NotImplementedException();}}添加之后启动程序,看到的结果如下OK, 到这⾥⼤家加上⾃⼰的后端业务逻辑,完成业务层⾯的操作就可以发布使⽤了。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第一章.实例快速上手 4.5新特性WebAPI从入门到精通在新出的MVC4中,增加了WebAPI,用于提供REST风格的WebService,新生成的WebAPI项目和典型的MVC项目一样,包含主要的Models、Views、Controllers等文件夹和Global.asax文件。

Views对于WebAPI来说没有太大的用途,Models中的Model主要用于保存Service和Client交互的对象,这些对象默认情况下会被转换为Json格式的数据迚行传输,Controllers中的Controller对应于WebService来说是一个Resource,用于提供服务。

和普通的MVC 一样,Global.asax用于配置路由规则。

(一)环境准备建议使用VS2012以上版本创建WebAPI,如果是使用VS2010,需要安装VS2010 SP1升级包,MVC4升级包,打开VS2012创建如下:第一步:新建 Web应用程序第二步:建议WebAPI新生成的WebAPI项目和典型的MVC项目一样,包含主要的Models,Views,Controllers等文件夹和Global.asax文件注意:再次强调Views对于WebAPI来说没有太大的用途,Models 中的Model主要用于保存Service和Client交互的对象,这些对象默认情况下会被转换为Json格式的数据进行传输,Controllers中的Controller对应于WebService来说是一个Resource,用于提供服务。

和普通的MVC一样,Global.asax用于配置路由规则(二)Models和WCF中的数据契约形成鲜明对比的是,MVC WebAPI中的Model 就是简单的POCO,没有任何别的东西,如,你可以创建如下的Model public class UserModel{public int Id { get; set; }public string UserName { get; set; }public string PassWord { get; set; }}注意:Model必须提供public的属性,用于json或xml反序列化时的赋值(三)ControllersMVC WebAPI中的Controllers和普通MVC的Controllers类似,不过不再继承于Controller,而改为继承API的ApiController,一个Controller可以包含多个Action,这些Action响应请求的方法与Global 中配置的路由规则有关,在后面结束Global时统一说明(四)Global默认情况下,模板自带了两个路由规则,分别对应于WebAPI和普通MVC的Web请求,默认的WebAPI路由规则如下1 routes.MapHttpRoute(2 name: "DefaultApi",3 routeTemplate: "api/{controller}/{id}",4 defaults: new { id = RouteParameter.Optional }5 );可以看到,默认路由使用的固定的api作为Uri的先导,按照微软官方的说法,用于区分普通Web请求和WebService的请求路径:可以看到,默认的路由规则只指向了Controller,没有指向具体的Action,因为默认情况下,对于Controller中的Action的匹配是和Action的方法名相关联的:具体来说,如果使用上面的路由规则,对应下面的Controller:public class UserController : ApiController{public List<UserModel> allModeList = new List<UserModel>() {new UserModel(){ Id=1,UserName="zhang", PassWord="123"},new UserModel(){ Id=2,UserName="lishi", PassWord="123456"},new UserModel(){ Id=3,UserName="wang", PassWord="1234567"}};//Get api/User/public IEnumerable<UserModel> GetAll(){return allModeList;}//Get api/User/1public IEnumerable<UserModel> GetOne(int id) {return allModeList.FindAll((m) => { return m.Id == id; }); }//POST api/User/public bool PostNew(UserModel user){try{allModeList.Add(user);return true;}catch {return false;}//Delete api/User/public int DeleteAll(){return allModeList.RemoveAll((mode) => { return true; });}//Delete api/User/1public int DeleteOne(int id) {return allModeList.RemoveAll((m) => { return m.Id == id; });}//Put api/Userpublic int PutOne(int id, UserModel user){List<UserModel> upDataList = allModeList.FindAll((mode) => { return mode.Id == id; });foreach (var mode in upDataList)mode.PassWord = user.PassWord;erName = erName;}return upDataList.Count;}}则,会有下面的对应关系:URL HttpMethod 对应的Action名/api/User GET GetALL/api/User/1 GET GetOne/api/User POST PostNew/api/User/1 DELETE DeleteOne/api/User DELETE DeleteALL/api/User PUT PutOne(五)客户端JS调用function getAll() {$.ajax({url: "api/User/",type: 'GET',success: function (data) {document.getElementById("modes").innerHTML = "";$.each(data, function (key, val) {var str = erName + ': ' + val.PassWord;$('<li/>', { html: str }).appendTo($('#modes'));});}}).fail(function (xhr, textStatus, err) {alert('Error: ' + err);});}function find() {$.ajax({url: "api/User/1" ,type: 'GET',success: function (data) {document.getElementById("modes").innerHTML = "";$.each(data, function (key, val) {var str = erName + ': ' + val.PassWord;$('<li/>', { html: str }).appendTo($('#modes'));});}}).fail(function (xhr, textStatus, err) {alert('Error: ' + err);});}function add() {$.ajax({url: "api/User/",type: "POST",dataType: "json",data: { "Id":4,"UserName": "admin", "PassWord": "666666"},success: function (data) {getAll();}}).fail(function (xhr, textStatus, err) {alert('Error: ' + err);});}function removeUser() {$.ajax({url: "api/User/3",type: 'DELETE',success: function (data) {document.getElementById("modes").innerHTML = "";getAll();}}).fail(function (xhr, textStatus, err) {alert('Error: ' + err);});}function removeAll() {$.ajax({url: "api/User/",type: 'DELETE',success: function (data) {document.getElementById("modes").innerHTML = "";getAll();}}).fail(function (xhr, textStatus, err) {alert('Error: ' + err);});}function udpate() {$.ajax({url: "api/User/1",type: 'PUT',dataType: "json",data: { Id: 1, "UserName": "admin", "PassWord": "666666" },success: function (data) {document.getElementById("modes").innerHTML = "";getAll();}}).fail(function (xhr, textStatus, err) {alert('Error: ' + err);});}这样就实现了最基本的CRUD操作。

相关文档
最新文档