基于RESTful标准的Web Api
微軟的web api是在vs2012上的mvc4項目綁定發行的,它提出的web api是完全基于RESTful標準的,完全不同于之前的(同是SOAP協議的)wcf和webService,它是簡單,代碼可讀性強的,上手快的,如果要拿它和web服務相比,我會說,它的接口更標準,更清晰,沒有混亂的方法名稱,有的只有幾種標準的請求,如get,post,put,delete等,它們分別對應的幾個操作,下面講一下:
GET:生到數據列表(默認),或者得到一條實體數據
POST:添加服務端添加一條記錄,記錄實體為Form對象
PUT:添加或修改服務端的一條記錄,記錄實體的Form對象,記錄主鍵以GET方式進行傳輸
DELETE:刪除 服務端的一條記錄
注意上面公開的API接口都是在XMLHttpRequest情況下調用的,當然你可以使用jquery的ajax組件來完成這個請求調用,它的代碼更加面向對象,下面舉例說明一下
這是頁面的HTML代碼部分,實現最基本的CRUD操作
<fieldset><legend>測試Web Api</legend><a href="javascript:add()">添加(post)</a><a href="javascript:update(1)">更新(put)</a><a href="javascript:deletes(1)">刪除(delete)</a><a href="/api/test">列表(Get)</a><a href="/api/test/1">實體(Get)</a> </fieldset> <script>function add() {$.ajax({url : "/api/Test/",type : "POST",data :{"UserID":4,"UserName":"test","UserEmail":"Parry@cnblogs.com"},success: function (data) { alert(JSON.stringify(data)); }});}//更新function update(id) {$.ajax({url : "/api/Test?id="+id,type : "Put",data :{"UserID":1,"UserName":"moditest","UserEmail":"Parry@cnblogs.com"},success: function (data) { alert(JSON.stringify(data)); }});}function deletes(id) {$.ajax({url : "/api/Test/1",type : "DELETE",success: function (data) { alert(data);}});} </script>下面是ApiController部分的代碼:
/// <summary>/// Test模塊API/// URI:/Api/Test/// </summary>public class TestController : ApiController{/// <summary>/// User Data List/// </summary>private readonly List<Users> _userList = new List<Users>{new Users {UserID = 1, UserName = "zzl", UserEmail = "bfyxzls@sina.com"},new Users {UserID = 2, UserName = "Spiderman", UserEmail = "Spiderman@cnblogs.com"},new Users {UserID = 3, UserName = "Batman", UserEmail = "Batman@cnblogs.com"}};/// <summary>/// 得到列表對象/// </summary>/// <returns></returns>public IEnumerable<Users> Get(){return _userList;}/// <summary>/// 得到一個實體,根據主鍵/// </summary>/// <param name="id"></param>/// <returns></returns>public Users Get(int id){return _userList.FirstOrDefault(i => i.UserID == id);}/// <summary>/// 添加/// </summary>/// <param name="form">表單對象,它是唯一的</param>/// <returns></returns>public Users Post([FromBody] Users entity){_userList.Add(entity);return entity;}/// <summary>/// 更新/// </summary>/// <param name="id">主鍵</param>/// <param name="form">表單對象,它是唯一的</param>/// <returns></returns>public Users Put(int id, [FromBody]Users entity){var user = _userList.FirstOrDefault(i => i.UserID == id);if (user != null){user.UserName = entity.UserName;user.UserEmail = entity.UserEmail;}return user;}/// <summary>/// 刪除/// </summary>/// <param name="id">主鍵</param>/// <returns></returns>public void Delete(int id){_userList.Remove(_userList.FirstOrDefault(i=>i.UserID==id));}}下面我們看一下各個操作調用的結果:
添加操作(POST)
更新操作(PUT)
最后,再強調一下,web api使用RESTful架構的,不像傳統的(同是SOAP的) RPC方式的wcf和web Service,它強調的是接口模塊的概念,每個模塊都是獨立的,每個模塊的接口方法都是統一的和單一的,即CRUD方法組成。
總結
以上是生活随笔為你收集整理的基于RESTful标准的Web Api的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MVC4 WebAPI
- 下一篇: “办卡有礼”的诱惑有多大 一男子透支信用