参考链接:http://www.cnblogs.com/lori/p/3555737.html

简单的了解到RESTful架构后,跟着以上链接做了一个小练习。

Step1:

新建WebApi项目,新建controller命名为TestController
在TestController中的代码如下:

 public class TestController : ApiController
{
/// <summary>
/// User Data List
/// </summary> private readonly List<Users> _userList = new List<Users>
{
new Users{ UserID=,UserName="Admin",UserEmail="bfyxzls@sina.com"},
new Users {UserID = , UserName = "Spiderman", UserEmail = "Spiderman@cnblogs.com"},
new Users {UserID = , UserName = "Batman", UserEmail = "Batman@cnblogs.com"}
}; /// <summary>
/// 得到列表对象
/// </summary>
/// <returns></returns> public IEnumerable<Users> Get()
{
return _userList;
} /// <summary>
/// 得到一个实体,根据主键
/// </summary>
/// <param name="id"></param>
/// <returns></returns> public Users Get(int id)
{
return _userList.FirstOrDefault(i => i.UserID == id);
} /// <summary>
/// 添加
/// </summary>
/// <param name="form">表单对象,它是唯一的</param>
/// <returns></returns> public Users Post([FromBody] Users entity)
{
_userList.Add(entity);
return entity;
} /// <summary>
/// 更新
/// </summary>
/// <param name="id">主键</param>
/// <param name="form">表单对象,它是唯一的</param>
/// <returns></returns> public Users Put(int id, [FromBody] Users entity)
{
var user = _userList.FirstOrDefault(i => i.UserID == id);
if (user!=null)
{
user.UserName = entity.UserName;
user.UserEmail = entity.UserEmail;
}
return user;
} /// <summary>
/// 删除
/// </summary>
/// <param name="id">主键</param>
/// <returns></returns> public void Delete(int id)
{
_userList.Remove(_userList.FirstOrDefault(i => i.UserID == id));
} }

Step2:

新建html页面,在html中代码如下:

 <!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script src="../../Scripts/jquery-1.10.2.min.js"></script>
<script src="../../Scripts/jquery-1.10.2.js"></script>
</head>
<body>
<fieldset>
<legend>
测试Web Api
</legend>
<a href="javascript:add()">添加(post)</a>
<a href="javascript:update(1)">更新(put)</a>
<a href="javascript:deletes(1)">删除(delete)</a>
<a href="/api/test">列表(Get)</a>
<a href="/api/test/1">实体(Get)</a>
</fieldset>
<script>
function add() {
$.ajax({
url: "/api/Test/",
type: "POST",
data: { "UserID": , "UserName": "test", "UserEmail": "Parry@cnblogs.com" },
success: function (data) { alert(JSON.stringify(data)); }
});
} //更新
function update(id) {
$.ajax({
url: "/api/Test?id=" + id,
type: "Put",
data: { "UserID": , "UserName": "moditest", "UserEmail": "Parry@cnblogs.com" },
success: function (data) { alert(JSON.stringify(data)); }
});
}
function deletes(id) {
$.ajax({
url: "/api/Test/1",
type: "DELETE",
success: function (data) { alert(data); }
});
}
</script>
</body>
</html>

总结:

从练习中学习到RESTful标准相比较传统的webService方式,在前端提交到后台服务上,更加方便快捷,并且以上练习,让人很清晰可以根据以前掌握的ajax提交,只是改变了URL和type方式,其它的方式都更加亲切,所以更加的通俗易懂。

Web Api:基于RESTful标准的更多相关文章

  1. WebApi系列~基于RESTful标准的Web Api

    微软的web api是在vs2012上的mvc4项目绑定发行的,它提出的web api是完全基于RESTful标准的,完全不同于之前的(同是SOAP协议的)wcf和webService,它是简单,代码 ...

  2. 基于RESTful标准的Web Api

    微软的web api是在vs2012上的mvc4项目绑定发行的,它提出的web api是完全基于RESTful标准的,完全不同于之前的(同是SOAP协议的)wcf和webService,它是简单,代码 ...

  3. WebApi系列~基于RESTful标准的Web Api 转载 https://www.cnblogs.com/lori/p/3555737.html

    微软的web api是在vs2012上的mvc4项目绑定发行的,它提出的web api是完全基于RESTful标准的,完全不同于之前的(同是SOAP协议的)wcf和webService,它是简单,代码 ...

  4. ASP.NET Core Web API 开发-RESTful API实现

    ASP.NET Core Web API 开发-RESTful API实现 REST 介绍: 符合REST设计风格的Web API称为RESTful API. 具象状态传输(英文:Representa ...

  5. ASP.NET Web API基于OData的增删改查,以及处理实体间关系

    本篇体验实现ASP.NET Web API基于OData的增删改查,以及处理实体间的关系. 首先是比较典型的一对多关系,Supplier和Product. public class Product { ...

  6. [转]ASP.NET Web API基于OData的增删改查,以及处理实体间关系

    本文转自:http://www.cnblogs.com/darrenji/p/4926334.html 本篇体验实现ASP.NET Web API基于OData的增删改查,以及处理实体间的关系. 首先 ...

  7. 新建 ASP.NET Core Web API 项目 -- RESTFul 风格 Hello World!

    一.创建一个空项目 请查看 新建 .NET Core 项目 -- Hello World! 一节,新建一个项目:    二.添加引用并修改配置为 Web API (.NET Core 已将 MVC/W ...

  8. asp.net core 2.0 web api基于JWT自定义策略授权

    JWT(json web token)是一种基于json的身份验证机制,流程如下: 通过登录,来获取Token,再在之后每次请求的Header中追加Authorization为Token的凭据,服务端 ...

  9. Web Api 基于Zookeeper的服务注册与发现

    安装与差异 Zookeeper安装请参考我上篇文章 http://www.cnblogs.com/woxpp/p/7700368.html 基于Nginx的服务提供和消费 基于zookeeper的服务 ...

随机推荐

  1. JustOj 1974: 简单的事情 (组合数)

    题目描述 数学天才fans曾经说过一句话:组合数的计算是一件非常简单的事情.组合数的计算真的是一件非常简单的事情吗?请你自己去尝试一下吧! 输入 输入中的一些整数对n,m(m≤n≤20) 输出 输出其 ...

  2. 课堂测试代码(未完全实现,部分代码有bug,仅供参考)

    //信1705-3 20173507 周龙海package account; public class account { private String accountID; private Stri ...

  3. Python框架----cookie和session

    一.cookie和session的介绍 cookie不属于http协议范围,由于http协议无法保持状态,但实际情况,我们却又需要“保持状态”,因此cookie就是在这样一个场景下诞生. cookie ...

  4. CE教程

    https://www.52pojie.cn/thread-726510-1-1.htmlhttps://www.52pojie.cn/thread-726154-1-1.html https://w ...

  5. javascript 与 PHP 通信加密,使用AES 128 CBC no padding,以及ios,java,c#文章例子

    运行环境 php7.0 不适用于 php7.0以上版本,因为mcrypt_encrypt()函数已删除 为何要采用 no padding 这种形式: AES加密如果原输入数据不够16字节的整数位,就要 ...

  6. Linux LAMP架构搭建

    一.部署LAMP基本架构 1.L(linux)A(apache)M(mysql)P(php) 2.稳定版本(mysql5.1,php5.3,apache2.2) 3.安装顺序,mysql-->a ...

  7. 01: docker 基本使用

    1.1 docker基础 1.docker与虚拟机比较 2.docker版本 1. 社区版(Community Edition, CE) 2. 企业版(Enterprise Edition, EE) ...

  8. JVM内存结构之堆、栈、方法区以及直接内存、堆和栈区别

    JVM内存结构之堆.栈.方法区以及直接内存.堆和栈区别 一.  理解JVM中堆与栈以及方法区 堆(heap):FIFO(队列优先,先进先出):二级缓存:*JVM中只有一个堆区被所有线程所共享:对象和数 ...

  9. Codeforces Round #423 (Div. 2, rated, based on VK Cup Finals) Problem C (Codeforces 828C) - 链表 - 并查集

    Ivan had string s consisting of small English letters. However, his friend Julia decided to make fun ...

  10. topcoder srm 505 div1

    problem1 link 设行数为$n$列数为$m$ 对于任意的两行$r_{1},r_{2}$以及任意的两列$c_{1},c_{2}$所确定的四个格子,只要知道其中的三个就能确定第四个,且必须要三个 ...