一、理解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. beetle.express针对websocket的高性能处理

    客户需要对websocket服务应用,其要求每秒同时给3W个在线的websocket连接进行广播消息.以下针对beetle.express扩展websocket简单的性能测试.从测试结果来看基本没什么 ...

  2. C# 调用restful服务开源库

    .NET环境下我们想调用其它开放平台的服务接口,不需要自己去实现底层,开源的库用起来会很方便 hammock http://www.cnblogs.com/shanyou/archive/2012/0 ...

  3. 循序渐进做项目系列(1):最简单的C/S程序——让服务器来做加法

    (本文是专门针对未接触过C/S开发的初学者而写的,C/S开发高手请自动忽略啊~~) 还在写“Hello world!”式的单机程序吗?还在各种拖控件吗?是否自己都觉得有点low呢?来个质的飞跃吧!看看 ...

  4. Dojo动画原理解析

    dojo中动画部分分为两部分:dojo/_base/fx, dojo/fx.dojo/_base/fx部分是dojo动画的基石,里面有两个底层API:animateProperty.anim和两个常用 ...

  5. [.net 面向对象程序设计进阶] (3) 正则表达式 (二) 高级应用

    [.net 面向对象程序设计进阶] (2) 正则表达式 (二)  高级应用 上一节我们说到了C#使用正则表达式的几种方法(Replace,Match,Matches,IsMatch,Split等),还 ...

  6. 细说.NET 中的多线程 (一 概念)

    为什么使用多线程 使用户界面能够随时相应用户输入 当某个应用程序在进行大量运算时候,为了保证应用程序能够随时相应客户的输入,这个时候我们往往需要让大量运算和相应用户输入这两个行为在不同的线程中进行. ...

  7. 细说.NET中的多线程 (二 线程池)

    上一章我们了解到,由于线程的创建,销毁都是需要耗费大量资源和时间的,开发者应该非常节约的使用线程资源.最好的办法是使用线程池,线程池能够避免当前进行中大量的线程导致操作系统不停的进行线程切换,当线程数 ...

  8. Visual Studio 2015速递(3)——ASP.NET 新特性

    系列文章 Visual Studio 2015速递(1)——C#6.0新特性怎么用 Visual Studio 2015速递(2)——提升效率和质量(VS2015核心竞争力) Visual Studi ...

  9. Vue.js线程机制问题还是数据双向绑定有延迟的问题

    最近用select2做一个下拉多选,若只是从后端获取一个列表渲染还好说,没有任何问题.但要用select2对数据初始化时进行selected的默认选项进行显示,就出现问题了. vm.$set('are ...

  10. Nginx+Keepalived(带Nginx监控脚本)

    转载于:http://www.itxuexiwang.com/a/liunxjishu/2016/0220/151.html?1456381460 Keepalived+ nginx的安装部署 主机: ...