8: contacts = new List<Contact>();
9: contacts.Add(new Contact { Id = "001", Name = "张三",
10: PhoneNo = "0512-12345678", EmailAddress = "zhangsan@gmail.com",
11: Address = "江苏省苏州市星湖街 328 号" });
12: contacts.Add(new Contact { Id = "002", Name = "李四",
13: PhoneNo = "0512-23456789", EmailAddress = "lisi@gmail.com",
14: Address = "江苏省苏州市金鸡湖大道 328 号" });
15: }
16:?
17: public IEnumerable<Contact> Get(string id = null)
18: {
19: return from contact in contacts
20: where contact.Id == id || string.IsNullOrEmpty(id)
21: select contact;
22: }
23:?
24: public void Post(Contact contact)
25: {
26: Interlocked.Increment(ref counter);
27: contact.Id = counter.ToString("D3");
28: contacts.Add(contact);
29: }
30:?
31: public void Put(Contact contact)
32: {
33: contacts.Remove(contacts.First(c => c.Id == contact.Id));
34: contacts.Add(contact);
35: }
36:?
37: public void Delete(string id)
38: {
39: contacts.Remove(contacts.First(c => c.Id == id));
40: }
41: }
简 单 起 见 , 我 们 利 用 一 个 静 态 字 段 ( contacts ) 表 示 存 储 的 联 系 人 列 表 。 当
ContactsController 类型被加载的时候,我们添加了 两个 ID 分别为“001”和“002”的联系人记
录。至于实现联系人 CRUD 操作的 Action 方法,我们也省略了必要的验证,对于本书后续
的演示的实 例,我们基本上也会采用这种“简写”的风格。
三、以 Web Host 方式寄宿 Web API
我们在上面已经提到过了,虽然被命名为 ASP.NET Web API,但是其核心的消息处理
管道却是独立于 ASP.NET 平台的,所以我们可以对相同的 Web API 实施不同的寄宿方式。
寄宿的本质就是利用一个具体的应用程序为 Web API 提供一个运行的环境,并最终解决“请
求的接 收 和 响 应 的回复”问题。作 为寄 宿 的 一 种 主要形式, Web Host 就是创 建 一 个
ASP.NET Web 应用作为 Web API 的宿主。
评论1
最新资源