現在的互聯網應用,無論是web應用,還是移動APP,基本都需要實現非常多的數據訪問接口。其實對一些輕應用來說Asp.net WebAPI是一個很快捷簡單並且易於維護的后台數據接口框架。下面我們來快速構建一個基礎數據操作接口。
-
新建項目
-
選擇WebApi,並使用空模板(這里不想要一些其他的mvc的東西)
-
新建一個model
-
寫幾個屬性
namespace WebApplication3.Models
{
public class Test
{
public int id { set; get; }
public string name { set; get; }
}
}
-
新增控制器
這里也用了空的控制器,避免多余代碼干擾,其實后期可以寫CodeSmith模板生成。
-
添加代碼
using System.Collections.Generic;
using System.Linq;
using System.Web.Http;
using WebApplication3.Models;
namespace WebApplication3.Controllers
{
public class TestController : ApiController
{
Test[] products = new Test[]
{
new Test { id = 1, name = "Tomato Soup"},
new Test { id = 2, name = "Yo-yo" },
new Test { id = 3, name = "Hammer" }
};
public IEnumerable<Test> GetAllProducts()
{
return products;
}
public IHttpActionResult GetProduct(int id)
{
var product = products.FirstOrDefault((p) => p.id == id);
if (product == null)
{
return NotFound();
}
return Ok(product);
}
[HttpPost]
public IHttpActionResult PostTest([FromBody]Test t)
{
var product = products.FirstOrDefault((p) => p.id == t.id);
if (product == null)
{
return NotFound();
}
return Ok(product);
}
}
}
-
運行頁面
這里注意路由規則,api/控制器名稱/id
-
也許你會說,我希望返回JSON格式的,好吧,增加下面兩句。
其實就是修改Config的Formatter,使用JsonMediaTypeFormatter就好了。
-
你想問Post怎么調用?
當然也可以直接從Form中取值。例如:$("#SearchForm").serialize(),
- 能查詢當然也能夠進行增刪改嘍。
- WebApi只有路由等基本框架,數據庫操作完全可以自行選擇,ADO.net, EF,nhibernate都可以。
- 果然是手機APP數據接口快速開發利器啊。
