ASP.NET MVC WEB API必知必会知识点总结
一、理解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必知必会知识点总结的更多相关文章
- ABP 教程文档 1-1 手把手引进门之 AngularJs, ASP.NET MVC, Web API 和 EntityFramework(官方教程翻译版 版本3.2.5)含学习资料
本文是ABP官方文档翻译版,翻译基于 3.2.5 版本 转载请注明出处:http://www.cnblogs.com/yabu007/ 谢谢 官方文档分四部分 一. 教程文档 二.ABP 框架 三. ...
- ASP.NET MVC Web API Post FromBody(Web API 如何正确 Post)
问题场景: ASP.NET MVC Web API 定义 Post 方法,HttpClient 使用 JsonConvert.SerializeObject 传参进行调用,比如 Web Api 中定义 ...
- ASP.NET MVC Web API For APP
近来很多大型的平台都公开了Web API.比如百度地图 Web API,做过地图相关的人都熟悉.公开服务这种方式可以使它易于与各种各样的设备和客户端平台集成功能,以及通过在浏览器中使用 JavaScr ...
- [译]ABP框架使用AngularJs,ASP.NET MVC,Web API和EntityFramework构建N层架构的SPA应用程序
本文转自:http://www.skcode.cn/archives/281 本文演示ABP框架如何使用AngularJs,ASP.NET MVC,Web API 和EntityFramework构建 ...
- 【转载】ASP.NET MVC Web API 学习笔记---联系人增删改查
本章节简单介绍一下使用ASP.NET MVC Web API 做增删改查.目前很多Http服务还是通过REST或者类似RESP的模型来进行数据操作的.下面我们通过创建一个简单的Web API来管理联系 ...
- Asp.net mvc web api 在项目中的实际应用
Asp.net mvc web api 在项目中的实际应用 前言:以下只是记录本人在项目中的应用,而web api在数据传输方面有多种实现方式,具体可根据实际情况而定! 1:数据传输前的加密,以下用到 ...
- ASP.NET MVC Web API 学习笔记---第一个Web API程序
http://www.cnblogs.com/qingyuan/archive/2012/10/12/2720824.html GetListAll /api/Contact GetListBySex ...
- 实战 ASP.NET MVC Web API
实战 ASP.NET MVC Web API Web API 框架基于 ASP.NET MVC 框架开发,是一个面向 Http 协议的通信框架.相对于 WCF 而言,Web API 只面向于 Http ...
- ASP.NET MVC Web API 学习笔记---联系人增删改查
本章节简单介绍一下使用ASP.NET MVC Web API 做增删改查. 目前很多Http服务还是通过REST或者类似RESP的模型来进行数据操作的. 下面我们通过创建一个简单的Web API来管理 ...
- 【转载】ASP.NET MVC Web API 学习笔记---第一个Web API程序
1. Web API简单说明 近来很多大型的平台都公开了Web API.比如百度地图 Web API,做过地图相关的人都熟悉.公开服务这种方式可以使它易于与各种各样的设备和客户端平台集成功能,以及通过 ...
随机推荐
- TCPDF 6.0.036 发布,PHP 的 PDF 操作包
TCPDF 6.0.036 包含对注册色彩的支持. TCPDF是一个用于快速生成PDF文件的PHP5函数包.TCPDF基于FPDF进行扩展和改进.支持UTF-8,Unicode,HTML和XHTML.
- Sensor(PROXIMITY)
package com.example.sensor01; import android.hardware.Sensor; import android.hardware.SensorEvent; i ...
- Jasmine测试ng Promises - Provide and Spy
jasmine提供了很多些很实用的处理Promises的方法,首先我们来考虑下面的这个例子: angular.module("myApp.store").controller(&q ...
- Caliburn实现MVVM模式的编程
引言:什么是Caliburn ? 一个夜晚,一处教堂,人们忏悔结束后抬头看到一把宝剑插在一块石头上.石上字述“英格兰人,凡能从石头上拔出剑者,为王者!”,Caliburn就是英格兰人心中的石中剑,这把 ...
- zend studio 常用快捷键
zend studio是一款很棒的PHP语言编译器,强大的功能让很多程序员爱不释手,而快捷键更是程序员加快编写代码的利器,那么一起来看看有哪些好用的快捷键吧. 复制当前行:ctrl+alt+↓ 删除当 ...
- 删除xcode 里的多余证书
删除xcode 里的多余证书 方法一: command+shift+G 前往文件夹: ~/Library/MobileDevice/Provisioning Profiles 方法二: 进入xcode ...
- JavaScript练习之for循环语句
for循环四要素:初始条件.循环条件.循环体.状态改变. 1.for(var a=i;i<=aa;i++) { 循环体(例sum=sum+i sum是输出的) } 例题 1-20关没关一分 2 ...
- 知方可补不足~sqlserver中触发器的使用
回到目录 触发器在过去的10年中,即存储过程和ado.net称霸江湖期间是那么的重要,而现在,trigger显得不是那么必要的,我们很少将复杂的业务写在SQL里,当然也会没有机会写到trigger里了 ...
- memcache和redis区别
memcache官方定义 Free & open source, high-performance, distributed memory object caching system, gen ...
- Atitit 代理与分销系统(1) 子代理 充值总额功能设计概览 sum() groubpy subagt
Atitit 代理与分销系统(1) 子代理 充值总额功能设计概览 sum() groubpy subagt Keyword 分组与聚合操作. 一个for做分组...里面的做聚合... 数据g操作查 ...