一、理解WEB API:提供基于RESTful架构的WEB服务,通过HTTP请求方法(GET, PUT, POST, DELETE)映射到服务器端相应的ACTION方法(CRUD)。

RESTful架构:

(1)每一个URI代表一种资源;
(2)客户端和服务器之间,传递这种资源的某种表现层;
(3)客户端通过四个HTTP动词,对服务器端资源进行操作,实现"表现层状态转化"。

HTTP 的四个主要方法 (GET, PUT, POST, DELETE) 按照下列方式映射为 CURD 操作:

GET 用于获取 URI 资源的进行展示, GET 操作不应对服务端有任何影响;

PUT 用于更新 URI 上的一个资源, 如果服务端允许, PUT 也可以用于新建一个资源;
POST 用于新建 资源, 服务端在指定的 URI 上创建一个新的对象, 将新资源的地址作为响应消息的一部分返回;
DELETE 用于删除指定的 URI 资源。

二、WEB API特点:

1.CONTROL类继承自ApiController抽象类;

2.注册路由时一般无需指定ACTION节点,ACTION方法名称一般都包含HTTP请求方法名名称,路由系统通过HTTP请求方法自动寻找与之相应的ACTION方法并执行;

3.ACTION方法返回值一般为:JSON、XML或一般值对象

三、实现发送GET, PUT, POST, DELETE HTTP请求方法

1.通过JQUERY.AJAX方法指定TYPE类型来实现GET, PUT, POST, DELETE HTTP请求方法;

2.直接访问URL或将表单的METHOD方法设为GET,则可实现GET  HTTP请求方法;

3.将表单的METHOD方法设为POST,则可实现POST  HTTP请求方法;

4.PUT、DELETE除第一种方法外,只能通过先在服务端重写HTTP请求方法(自定义HttpMessageHandler来实现),然后再在客户端请求报文头指定“X-HTTP-Method-Override

”值为PUT或DELETE来实现;具体实现方法详见:如果调用ASP.NET Web API不能发送PUT/DELETE请求怎么办?

5.在注册WEB API路由规则时指定ACTION节点;

四、WEB API请求与服务端处理实现方法:

1.GET ALL方法:

客户端:

 $("#Button1").click(function () {
$.getJSON("@Url.Content("~/api/values")", function (data) {
var rs = "";
$.each(data, function () {
rs += this + ",";
})
alert(data);
showResult(rs);
})
});

服务器端:

        // GET api/values
public IEnumerable<string> Get()
{
return new string[] { "value1", "value2" };
}

2.GET ONE方法:

客户端:

            $("#Button2").click(function () {
$.getJSON("@Url.Content("~/api/values/5")", function (data) {
alert(data);
showResult(data);
})
});

服务器端:

        // GET api/values/5
public string Get(int id)
{
return "value is " + id.ToString();
}

3.POST CREATE方法:(注意以下客户端中的第几种方法就对应服务器端的第几种方法)

客户端:

//第一种:
$("#Button1").click(function () {
$.post("@Url.Content("~/api/values")", {name:'zwj',age:29},function (data) {
alert(data);
showResult(data);
})
}); //第二种:
$("#Button3").click(function () {
$.ajax("@Url.Content("~/api/values/1")", {
type:'post',
data:JSON.stringify({ name: 'zwj', age: 29 }),
contentType: 'application/json',
//dataType: 'json',
success: function (result, status, xhr) {
alert(result);
showResult(result);
}
})
});

服务器端:

//第一种方法:
public string Post()
{
string s = "";
HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"];//获取传统context
HttpRequestBase request = context.Request;//定义传统request对象 for (int i = 0; i < request.Form.Keys.Count; i++)
{
s += string.Format("{0}={1}<br/>", request.Form.Keys[i], request.Form[i]);
}
return "Post values:" + s;
} //第二种方法:
public string Post([FromBody]Person p)
{
return string.Format("Put values:name:{0},age:{1}" + p.Name,p.Age);
}

4.PUT UPDATE方法:

 客户端方法与POST方法相同,只是TYPE指定为:PUT;

 服务器端与POST方法相同;

5.DELETE 方法:

 客户端方法与GET方法相同,只是TYPE指定为:DELETE;

 服务器端与GET方法相同;

也参见这篇文章:ASP.NET MVC学习系列(二)-WebAPI请求

ASP.NET MVC WEB API必知必会知识点总结的更多相关文章

  1. ABP 教程文档 1-1 手把手引进门之 AngularJs, ASP.NET MVC, Web API 和 EntityFramework(官方教程翻译版 版本3.2.5)含学习资料

    本文是ABP官方文档翻译版,翻译基于 3.2.5 版本 转载请注明出处:http://www.cnblogs.com/yabu007/  谢谢 官方文档分四部分 一. 教程文档 二.ABP 框架 三. ...

  2. ASP.NET MVC Web API Post FromBody(Web API 如何正确 Post)

    问题场景: ASP.NET MVC Web API 定义 Post 方法,HttpClient 使用 JsonConvert.SerializeObject 传参进行调用,比如 Web Api 中定义 ...

  3. ASP.NET MVC Web API For APP

    近来很多大型的平台都公开了Web API.比如百度地图 Web API,做过地图相关的人都熟悉.公开服务这种方式可以使它易于与各种各样的设备和客户端平台集成功能,以及通过在浏览器中使用 JavaScr ...

  4. [译]ABP框架使用AngularJs,ASP.NET MVC,Web API和EntityFramework构建N层架构的SPA应用程序

    本文转自:http://www.skcode.cn/archives/281 本文演示ABP框架如何使用AngularJs,ASP.NET MVC,Web API 和EntityFramework构建 ...

  5. 【转载】ASP.NET MVC Web API 学习笔记---联系人增删改查

    本章节简单介绍一下使用ASP.NET MVC Web API 做增删改查.目前很多Http服务还是通过REST或者类似RESP的模型来进行数据操作的.下面我们通过创建一个简单的Web API来管理联系 ...

  6. Asp.net mvc web api 在项目中的实际应用

    Asp.net mvc web api 在项目中的实际应用 前言:以下只是记录本人在项目中的应用,而web api在数据传输方面有多种实现方式,具体可根据实际情况而定! 1:数据传输前的加密,以下用到 ...

  7. ASP.NET MVC Web API 学习笔记---第一个Web API程序

    http://www.cnblogs.com/qingyuan/archive/2012/10/12/2720824.html GetListAll /api/Contact GetListBySex ...

  8. 实战 ASP.NET MVC Web API

    实战 ASP.NET MVC Web API Web API 框架基于 ASP.NET MVC 框架开发,是一个面向 Http 协议的通信框架.相对于 WCF 而言,Web API 只面向于 Http ...

  9. ASP.NET MVC Web API 学习笔记---联系人增删改查

    本章节简单介绍一下使用ASP.NET MVC Web API 做增删改查. 目前很多Http服务还是通过REST或者类似RESP的模型来进行数据操作的. 下面我们通过创建一个简单的Web API来管理 ...

  10. 【转载】ASP.NET MVC Web API 学习笔记---第一个Web API程序

    1. Web API简单说明 近来很多大型的平台都公开了Web API.比如百度地图 Web API,做过地图相关的人都熟悉.公开服务这种方式可以使它易于与各种各样的设备和客户端平台集成功能,以及通过 ...

随机推荐

  1. WebStorm 11激活方法

    由于最新jetbrains发布了IntelliJ IDEA 15. PyCharm 5.PhpStorm10.WebStorm 11等各个版本,但是改变了注册方法.原先的注册码包括注册机都已经不能使用 ...

  2. 开始VS 2012中LightSwitch系列的第5部分:我可以使用用户权限来控制访问权吗?

    [原文发表地址]  Beginning LightSwitch in VS 2012 Part 5: May I? Controlling Access with User Permissions [ ...

  3. Java语法糖2:自动装箱和自动拆箱

    前言 一开始想学学自动拆箱和自动装箱是被这个名字吸引到,听上去好像很高端的样子,其实自动拆箱.自动装箱是很简单的内容. 自动拆箱和自动装箱 Java为每种基本数据类型都提供了对应的包装器类型.举个例子 ...

  4. 设计模式之美:Null Object(空对象)

    索引 意图 结构 参与者 适用性 效果 相关模式 实现 实现方式(一):Null Object 的示例实现. 意图 通过对缺失对象的封装,以提供默认无任何行为的对象替代品. Encapsulate t ...

  5. Java提高篇(三四)-----fail-fast机制

    在JDK的Collection中我们时常会看到类似于这样的话: 例如,ArrayList: 注意,迭代器的快速失败行为无法得到保证,因为一般来说,不可能对是否出现不同步并发修改做出任何硬性保证.快速失 ...

  6. 不插网线,看不到IP的解决办法

    在Windows中,如果不插网线,就看不到IP地址,即使这个块网卡已经绑定了固定IP,原因是操作系统开启了DHCP Media Sense功能,该功能的作用如下: 在一台使用 TCP/IP 的基于 W ...

  7. 扩展GridView控件——为内容项添加拖放及分组功能

    引言 相信大家对GridView都不陌生,是非常有用的控件,用于平铺有序的显示多个内容项.打开任何WinRT应用或者是微软合作商的网站,都会在APP中发现GridView的使用.“Tiles”提供了一 ...

  8. NanoProfiler - 适合生产环境的性能监控类库 之 基本功能篇

    背景 NanoProfiler是一个EF Learning Labs出品的免费性能监控类库(即将开源).它的思想和使用方式类似于MiniProfiler的.但是,设计理念有较大差异. MiniProf ...

  9. iOS开发中数组常用的五种遍历方式

    随着iOS的不断发展,apple也不断推出性能更高的数组遍历方式,下面将对熟悉的五种遍历方式进行列举. 首先定义一个数组,并获取数组长度 NSArray *array=@[",]; NSIn ...

  10. Atitit (Sketch Filter)素描滤镜的实现  图像处理  attilax总结

    Atitit (Sketch Filter)素描滤镜的实现  图像处理  attilax总结 1.1. 素描滤镜的实现方法比较简单,这里我们直接写出算法过程如下:1 1.2. 颜色减淡COLOR_DO ...