1. Common类的定义:Contact类定义。
(1) 启动VS2013,选择C#,新建空的类库项目,项目名称Common,代码如下。经编译可生成Common.dll文件,供后续项目引用。
namespace Common
{
public class Contact
{
public string Id { get; set; }
public string Name { get; set; }
public string PhoneNo { get; set; }
public string EmailAddress { get; set; }
public string Address { get; set; }
}
}
2. Controller类的定义:ContactController类定义。
(1) 启动VS2013,选择C#,新建空的类库项目,项目名称WebApi.
(2) 添加对上面Common库的引用。添加对System.web.http.dll的引用。具体位置在目录“%ProgramFiles%\MicrosoftASP.NET\ASP.NET Web Stack 5\Packages\”中。
(3) 修改class1类为ContactController类。由于ASP.NETWeb API 默认实现了Action方法与HTTP方法的映射,所以方法名也体现了它们各自所能处理的请求必须采用的HTTP方法。代码如下:
using System;
usingSystem.Collections.Generic;
using System.Linq;
using System.Text;
usingSystem.Threading.Tasks;
using System.Web.Http;
using Common;
namespace WebApi
{
public class ContactsController : ApiController
{
static List<Contact> contacts;
static int counter = 2;
staticContactsController()
{
contacts = new List<Contact>();
contacts.Add(new Contact { Id = "001", Name = "张三", PhoneNo = "0512-12345678", EmailAddress = "zhangsan@gmail.com", Address = "江苏省苏州市星湖街328 号" });
contacts.Add(new Contact { Id = "002", Name = "李四", PhoneNo = "0512-23456789", EmailAddress = "lisi@gmail.com", Address = "江苏省苏州市金鸡湖大道328 号" });
}
public IEnumerable<Contact> Get(string id = null)
{
return from contact in contacts
where contact.Id == id ||string.IsNullOrEmpty(id)
select contact;
}
public void Post(Contact contact)
{
contact.Id = counter.ToString("D3");
contacts.Add(contact);
}
public void Put(Contact contact)
{
contacts.Remove(contacts.First(c=> c.Id == contact.Id));
contacts.Add(contact);
}
public void Delete(string id)
{
contacts.Remove(contacts.First(c=> c.Id == id));
}
}
}