ASP.NET Web API 入门示例详解
- REST服务已经成为最新的服务端开发趋势,ASP.NET Web API即为.NET平台的一种轻量级REST架构.
- ASP.NET Web API直接借鉴了ASP.NET MVC的设计,两者具有非常类似的编程模式。
- ASP.NET Web API以Controller的形式来定义服务,而Controller中的Action方法则代表具体的操作。
- 以下示例展示一个轻量级的架构:{
Web前端:HTML+jQuery +KnockOut.js
服务端:ASP.NET Web API
通信协议:HTTP+JSON
}
服务定义:
public class ContactsController : ApiController
{
private static List<Contact> contacts = new List<Contact>
{
new Contact{
Id="",
Name="张三",
PhoneNo="",
EmailAddress="zhangsan@gmail.com"
},
new Contact{
Id="",
Name="李四",
PhoneNo="",
EmailAddress="lisi@gmail.com"
}
}; // GET api/contacts
public IEnumerable<Contact> Get()
{
return contacts;
} // GET api/contacts/5
public Contact Get(string id)
{
return contacts.FirstOrDefault(c => c.Id == id);
} // POST api/contacts
public void Post(Contact contact)
{
Delete(contact.Id);
contacts.Add(contact);
} // PUT api/contacts/5
public void Put(Contact contact)
{
contact.Id = Guid.NewGuid().ToString();
contacts.Add(contact);
} // DELETE api/contacts/5
public void Delete(string id)
{
Contact contact = contacts.FirstOrDefault(c => c.Id == id);
contacts.Remove(contact);
}
}
服务调用:

2 <html>
3 <head>
4 <title>联系人列表</title>
5 <script src="../Scripts/jquery-1.7.1.js" type="text/javascript"></script>
6 <script src="../Scripts/knockout-2.1.0.debug.js" type="text/javascript"></script>
7 </head>
8 <body>
9 <div id="contacts">
10 <table>
11 <tr>
12 <th>
13 姓名
14 </th>
15 <th>
16 电话号码
17 </th>
18 <th>
19 Email地址
20 </th>
21 </tr>
22 <tbody>
23 <!-- ko foreach: allContacts -->
24 <tr>
25 <td data-bind="text:Name">
26 </td>
27 <td data-bind="text:PhoneNo">
28 </td>
29 <td>
30 <input type="text" class="textbox long" data-bind="value:EmailAddress" />
31 </td>
32 <td>
33 <a href="#" data-bind="click:$root.updateContact">修改</a> <a href="#" data-bind="click:$root.deleteContact">
34 删除</a>
35 </td>
36 </tr>
37 <!-- /ko -->
38 <tr data-bind="with:addedContact">
39 <td>
40 <input type="text" class="textbox" data-bind="value:Name" />
41 </td>
42 <td>
43 <input type="text" class="textbox" data-bind="value:PhoneNo" />
44 </td>
45 <td>
46 <input type="text" class="textbox long" data-bind="value:EmailAddress" />
47 </td>
48 <td>
49 <a href="#" data-bind="click:$root.addContact">添加</a>
50 </td>
51 </tr>
52 </tbody>
53 </table>
54 </div>
55 <script type="text/javascript">
56 function ContactViewModel() {
57 self = this;
58 self.allContacts = ko.observableArray();
59 self.addedContact = ko.observable();
60
61 //加载联系人列表
62 self.loadContacts = function () {
63 $.get("/api/contacts", null, function (data) {
64 self.allContacts(data);
65 var emptyContact = { Id: "", Name: "", PhoneNo: "", EmailAddress: "" };
66 self.addedContact(emptyContact);
67 });
68 };
69
70 //添加联系人
71 self.addContact = function (data) {
72 if (!self.validate(data)) {
73 return;
74 }
75 $.ajax({
76 url: "/api/contacts/",
77 data: self.addedContact(),
78 type: "PUT",
79 success: self.loadContacts
80 });
81 };
82
83 //修改联系人信息
84 self.updateContact = function (data) {
85 $.ajax({
86 url: "/api/contacts/",
87 data: data,
88 type: "POST",
89 success: self.loadContacts
90 });
91 };
92
93 //删除联系人
94 self.deleteContact = function (data) {
95 $.ajax({
96 url: "/api/contacts/" + data.Id,
97 type: "DELETE",
98 success: self.loadContacts
99 });
};
self.validate = function (data) {
if (data.Name && data.PhoneNo && data.EmailAddress) {
return true;
}
alert("请输入完整联系人信息!");
return false;
}
self.loadContacts();
}
ko.applyBindings(new ContactViewModel());
</script>
</body>
</html>
ASP.NET Web API 入门示例详解的更多相关文章
- ASP.NET Web API 开篇示例介绍
ASP.NET Web API 开篇示例介绍 ASP.NET Web API 对于我这个初学者来说ASP.NET Web API这个框架很陌生又熟悉着. 陌生的是ASP.NET Web API是一个全 ...
- 【ASP.NET Web API教程】1 ASP.NET Web API入门
原文 [ASP.NET Web API教程]1 ASP.NET Web API入门 Getting Started with ASP.NET Web API第1章 ASP.NET Web API入门 ...
- 基于.Net Framework 4.0 Web API开发(2):ASP.NET Web APIs 参数传递方式详解
概述: ASP.NET Web API 的好用使用过的都知道,没有复杂的配置文件,一个简单的ApiController加上需要的Action就能工作.调用API过程中参数的传递是必须的,本节就来谈谈 ...
- ASP.net Web API综合示例
目录 概述 功能介绍 程序结构 服务器端介绍 客户端介绍 “契约” Web API设计规则 并行写入冲突与时间戳 身份验证详解 Web API验证规则 客户端MVVM简介 Web.Config 本DE ...
- ASP.NET Web API 入门大杂烩
[前言] 本文是大杂烩,意思即是:到处Copy再加一点点思考而混在一起的文章,引用来源因为太多太杂故而省略,望原作者原谅. [概述] ASP.NET Web API随ASP.NET MVC 4一起发行 ...
- ASP.NET Web API使用示例
原文地址:https://blog.csdn.net/chinacsharper/article/details/21333311 上篇博客讲解rest服务开发时,曾经提到过asp.net mvc中的 ...
- C#版ASP.NET Web API使用示例
为更好更快速的上手Webapi设计模式的接口开发,本文详细解释了在Web API接口的开发过程中,我们可能会碰到各种各样的问题总结了这篇,希望对大家有所帮助. 1:在接口定义中确定MVC的get或者P ...
- ASP.NET Web API 入门 (API接口、寄宿方式、HttpClient调用)
一.ASP.NET Web API接口定义 ASP.NET Web API默认实现了Action方法和HTTP方法的映射,Action方法方法名体现了其能处理的请求必须采用的HTTP方法 二.寄宿方式 ...
- 【Web API系列教程】1.1 — ASP.NET Web API入门
前言 HTTP不仅仅服务于web页面.同一时候也是构建暴露服务和数据的API的强大平台.HTTP有着简单.灵活和无处不在的特点.你能想到的差点儿全部平台都包括有一个HTTP库.所以HTTP服务能够遍及 ...
随机推荐
- jenkins解决jenkins内存溢出问题
在jenkins master-slave配置中,总是出现内存溢出问题,更换了机器设备仍然跑不起来: 问题如下: Status Code: 500 Exception: org.apache.comm ...
- mysql数据库的主从
1. Slave 上面的IO线程连接上 Master,并请求从指定日志文件的指定位置(或者从最开始的日志)之后的日志内容; 2. Master 接收到来自 Slave 的 IO 线程的请求后,通过负责 ...
- [Microsoft][ODBC 驱动程序管理器] 在指定的 DSN 中,驱动程序和应用程序之间的体系结构不匹配
环境: 操作系统:64位WIN7 数据库:SQL Server 2000 SP1 开发语言:J2EE 在Servlet连接数据库时出错提示: [Microsoft][ODBC 驱动程序管理器 ...
- php中rsa加密及解密和签名及验签
加密的内容长度限制为密钥长度少位,如位的密钥最多加密的内容为个长度. 公钥加密 $public_content=file_get_contents(公钥路径); $public_key=openssl ...
- java中对插入排序的理解以及实例
一.基本思想 通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应的位置并插入. 插入排序非常类似于整扑克牌. 在开始摸牌时,左手是空的,牌面朝下放在桌上.接着,一次从桌上摸起一张牌 ...
- hibernate的二级缓存
缓存(Cache): 计算机领域非常通用的概念.它介于应用程序和永久性数据存储源(如硬盘上的文件或者数据库)之间,其作用是降低应用程序直接读写永久性数据存储源的频率,从而提高应用的运行性能.缓存中的数 ...
- double函数和int函数
可以看到,当tensor全是double型时,int函数会把所有元素取整,从1.5可以看出,不是四舍五入,而是取整.double函数又把整数型元素变成double型. th> a 0.0000 ...
- sublime 自动编译
Tools --> Build System --> New: { "shell_cmd": "cc.bat \"$file\"" ...
- [问题2015S09] 复旦高等代数 II(14级)每周一题(第十教学周)
[问题2015S09] 设 \(A,B\) 是 \(n\) 阶复矩阵, 满足 \(\mathrm{rank}(AB-BA)\leq 1\), 证明: \(A,B\) 可同时上三角化. 问题解答请在以 ...
- HDU 5795 A Simple Nim(简单Nim)
p.MsoNormal { margin: 0pt; margin-bottom: .0001pt; text-align: justify; font-family: Calibri; font-s ...