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服务能够遍及 ...
随机推荐
- 从简单需求到OLAP的RANK系列函数
同事问了一个非常简单的问题,怎么取出每个partition里面另外一个列的最小值? create table t1 (int c1, int c2); 假如按照c2分区,0-10,10-20,20 ...
- 批处理命令——for
[1]for命令简介 先把for循环与for命令类比一下,这样学习理解快. for 循环语句,一般格式如下: for (表达式1;表达式2;表达式3) { 循环体; } 1. 表达式1 一般为初始状态 ...
- [转]iOS学习之UINavigationController详解与使用(三)ToolBar
转载地址:http://blog.csdn.net/totogo2010/article/details/7682641 iOS学习之UINavigationController详解与使用(二)页面切 ...
- webapi 解决ajax跨域请求问题
webapi在配置文件中加入这几句就可以解决ajax(同源策略是JavaScript里面的限制,其他的编程语言,比如在C#,Java或者iOS等其他语言中是可以调用外部的WebService,也就是 ...
- 自己封装的json工具类
package com.develop.util; import java.util.ArrayList; import java.util.HashMap; import java.util.Ite ...
- 深入理解C++的动态绑定和静态绑定【转】
转自:http://blog.csdn.net/chgaowei/article/details/6427731 为了支持c++的多态性,才用了动态绑定和静态绑定.理解他们的区别有助于更好的理解多态性 ...
- python 学习笔记八 进程和线程 (进阶篇)
什么是线程(thread)? 线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执 ...
- Android study first ----------安卓项目目录结构及adb指令
#Android项目的目录结构 * Activity:应用被打开时显示的界面 * src:项目代码 * R.java:项目中所有资源文件的资源id * Android.jar:Android的jar包 ...
- Fiddler—PC上实现手机的抓包
PC上安装Fiddler之后,可以抓取各种浏览器的请求,通过一些设置可以获取iPhone.安卓手机.windows phone的请求.具体的工作原理我也不多说(哼,绝对不是因为我不懂XD),主要说下如 ...
- NSRuntime RunLoop
Objective-C总Runtime的那点事儿(一)消息机制 http://www.cocoachina.com/ios/20141018/9960.html Runtime运行时的那点事儿 htt ...