一、理解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. android内存优化

    背景 虽然android设备的配置越来越高,但是,由于android系统的机制导致(最主要是app程序的主线程不会真正退出而是在后台常驻内存中) ,这样手机中安装过多的app之后,导致内存被大量占用, ...

  2. [SignalR]SignalR与WCF双工模式结合实现服务端数据直推浏览器端

    原文:[SignalR]SignalR与WCF双工模式结合实现服务端数据直推浏览器端 之前开发基于WinForm监控的软件,服务端基于Wcf实现,里面涉及双工模式,在客户端里面,采用心跳包机制保持与服 ...

  3. Win10 UWP开发中的重复性静态UI绘制小技巧 2

    小技巧1 地址:http://www.cnblogs.com/ms-uap/p/4641419.html 介绍 我们在上一篇博文中展示了通过Shape.Stroke族属性实现静态重复性UI绘制,使得U ...

  4. java输出任意两个日期之间有多少天

    package JingDian; import java.text.ParseException; import java.text.SimpleDateFormat; import java.ut ...

  5. swfupload 例子

    upload.html <!DOCTYPE html> <html lang="en"> <head> <script type='tex ...

  6. 赴美工作常识(Part 4 - 面试)

    最近跟同事讨论面试的事情比较多,所以就综合大家所说的列举几条面试建议吧.这些建议是针对中国候选人应聘美国职位而写的,但适用范围可能更广.假若你实际的实力是 X,面试官感知到你的实力是 Y,这些建议既不 ...

  7. http学习笔记(三)

    几乎所有的http通信都是由TCP/IP承载的.http好比一辆汽车,而TCP是一条公路,所有的汽车都要在公路上跑,看看http是如何在tcp这条公路上往返的. 首先简单地看看tcp,TCP连接是通过 ...

  8. js模版引擎handlebars.js实用教程——if-判断的基本用法

    返回目录 <!DOCTYPE html> <html> <head> <META http-equiv=Content-Type content=" ...

  9. 实战使用Axure设计App,使用WebStorm开发(5) – 实现页面功能

    系列文章 实战使用Axure设计App,使用WebStorm开发(1) – 用Axure描述需求  实战使用Axure设计App,使用WebStorm开发(2) – 创建 Ionic 项目   实战使 ...

  10. Atitit 拦截数据库异常的处理最佳实践

    Atitit 拦截数据库异常的处理最佳实践 需要特殊处理的ex 在Dao层异常转换并抛出1 Server层转换为业务异常1 需要特殊处理的ex 在Dao层异常转换并抛出 } catch (SQLExc ...