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服务能够遍及 ...
随机推荐
- iPad和iPhone开发区别
原文:http://mobile.51cto.com/iphone-273895.htm iPad与iPhone 开发区别详解是本文要介绍的内容,先来看看他们的区别. 1.首先我们先从官方发布的SDK ...
- shell调试
sh -x set -x 中间是要调试的代码 set +x
- sql注入过滤的公共方法
/// <summary> ///SQL注入过滤 /// </summary> /// <param name="InText">要过滤的字符串 ...
- Python学习笔记-常用模块
1.python模块 如果你退出 Python 解释器并重新进入,你做的任何定义(变量和方法)都会丢失.因此,如果你想要编写一些更大的程序,为准备解释器输入使用一个文本编辑器会更好,并以那个文件替代作 ...
- 控制边框颜色:《CSS3 Border-color》
CSS3中有关于Border的属性一共有三个:圆角border-radius,图片边框border-images,边框多颜色border-color,其中圆角border-radius是常用的一个属性 ...
- Android SQLite数据库使用
在Android开发中SQLite起着很重要的作用,网上SQLite的教程有很多很多,不过那些教程大多数都讲得不是很全面.本人总结了一些SQLite的常用的方法,借着论坛的大赛,跟大家分享分享的.一. ...
- 从零开始学iPhone开发(4)——使用WebView
转自 总结关于iPhone中UIWEBVIEW读取本地GBK编码格式html 关于webView读取本地GBK编码的html,尝试了两天,终于成功. 欢喜之余,把感想记下来.一般来说,不成都是人犯错, ...
- Web页面速度测试工具
开发框架的时间,想测试单例和多例下对性能的影响,找了下没有特别简单易用的测试工具. 估摸着搞了一个小工具. 针对.net Framework的2.0,3.5,4.0版本. WebHttpTest2.0 ...
- sql基本操作
SQL功能 数据查询 SELECT 数据定义 CREATE, DROP, ALTER 数据操纵 INSERT, UPDATE, DELETE 数据控制 GRANT, REVOKE 创建 ...
- Cheatsheet: 2015 07.01 ~ 07.31
Java JBoss Drools Tutorial for Beginners Other A Simple File System RebornDB: the Next Generation Di ...