基於RESTful標準的Web Api

來源:互聯網
上載者:User

標籤:des   blog   http   io   os   ar   使用   java   for   

微軟的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":"[email protected]"},            success: function (data) { alert(JSON.stringify(data)); }           });    }    //更新    function update(id) {        $.ajax({            url    : "/api/Test?id="+id,            type   : "Put",            data   :{"UserID":1,"UserName":"moditest","UserEmail":"[email protected]"},            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 = "[email protected]"},           new Users {UserID = 2, UserName = "Spiderman", UserEmail = "[email protected]"},           new Users {UserID = 3, UserName = "Batman", UserEmail = "[email protected]"}       };        /// <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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.