1. 程式人生 > >WebApi RESTful介面例項及ajax呼叫

WebApi RESTful介面例項及ajax呼叫

例項圖片

WebApi介面原始碼

using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web.Http;

namespace API
{
    //Void:返回狀態碼200,無資料
    //Object: 返回狀態碼200,資料

    [RoutePrefix("app/v1")]
    public class RestController : ApiController
    {
        /// <summary>
        /// User Data List
        /// </summary>
        private readonly List<Users> _userList = new List<Users>
       {
           new Users {UserID = 1, UserName = "zzl", UserEmail = "
[email protected]
" , Birthday= Convert.ToDateTime("1991-05-31")}, new Users {UserID = 2, UserName = "Spiderman", UserEmail = "[email protected]" , Birthday= Convert.ToDateTime("1991-05-31")}, new Users {UserID = 3, UserName = "Batman", UserEmail = "
[email protected]
" , Birthday= Convert.ToDateTime("1991-05-31")} }; /// <summary> /// 得到列表物件 /// </summary> /// <returns></returns> [Route("rest")] public HttpResponseMessage Get() { return Request.CreateResponse(HttpStatusCode.OK, _userList); } /// <summary> /// 得到一個實體,根據主鍵 /// </summary> /// <param name="id"></param> /// <returns></returns> [Route("rest/{id}")] public HttpResponseMessage Get(int id) { var user = _userList.FirstOrDefault(i => i.UserID == id); return Request.CreateResponse(HttpStatusCode.OK, user); } /// <summary> /// 驗證 /// </summary> /// <param name="name"></param> /// <returns></returns> [HttpGet] [Route("rest/exists/{name}")] public HttpResponseMessage Exists(string name) { ApiResultModel result = new ApiResultModel(); result.return_code = HttpStatusCode.OK; result.return_msg = "請求成功"; result.success = true; result.data = (_userList.FirstOrDefault(i => i.UserName == name) != null); return Request.CreateResponse(HttpStatusCode.OK, result); } /// <summary> /// 新增 /// </summary> /// <param name="form">表單物件,它是唯一的</param> /// <returns></returns> [Route("rest")] public HttpResponseMessage Post([FromBody] Users entity) { _userList.Add(entity); return Request.CreateResponse(HttpStatusCode.OK, entity); } /// <summary> /// 更新 /// </summary> /// <param name="id">主鍵</param> /// <param name="form">表單物件,它是唯一的</param> /// <returns></returns> [Route("rest")] public HttpResponseMessage Put(int id, [FromBody]Users entity) { ApiResultModel result = new ApiResultModel(); var user = _userList.FirstOrDefault(i => i.UserID == id); if (user != null) { user.UserName = entity.UserName; user.UserEmail = entity.UserEmail; result.success = true; result.return_code = HttpStatusCode.OK; result.return_msg = "請求成功"; result.data = user; return Request.CreateResponse(HttpStatusCode.OK, result); } else { result.success = false; result.return_code = HttpStatusCode.BadRequest; result.return_msg = "無效引數"; return Request.CreateResponse(HttpStatusCode.BadRequest, result); } } /// <summary> /// 刪除 /// </summary> /// <param name="id">主鍵</param> /// <returns></returns> [Route("rest/{id}")] public HttpResponseMessage Delete(int id) { _userList.Remove(_userList.FirstOrDefault(i => i.UserID == id)); return Request.CreateResponse(HttpStatusCode.OK, _userList); } } public class Users { public int UserID { get; set; } public string UserName { get; set; } public string UserEmail { get; set; } public DateTime Birthday { get; set; } } public class ApiResultModel { /// <summary> /// 是否成功 /// </summary> public bool success { get; set; } /// <summary> /// 狀態程式碼 /// </summary> public HttpStatusCode return_code { get; set; } /// <summary> /// 錯誤訊息 /// </summary> public string return_msg { get; set; } /// <summary> /// 返回的資料 /// </summary> public object data { get; set; } } /// <summary> /// 分頁集合 /// </summary> public class PagerData { /// <summary> /// 返回記錄的總數 /// </summary> public int RecordCount { get; set; } /// <summary> /// 返回分頁的總數 /// </summary> public int PageCount { get; set; } /// <summary> /// 列表集合 /// </summary> public object PageData { get; set; } } }

html+ajax

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <meta charset="utf-8" />
    <script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
</head>
<body>
<fieldset>
    <legend>
        測試Web Api - /app/v1/rest/
    </legend>
    <a href="javascript:add()">新增(post)</a>
    <a href="javascript:update(1)">更新(put)</a>
    <a href="javascript:deletes(1)">刪除(delete)</a>
    <a href="javascript:get('')">列表(Get)</a>
    <a href="javascript:get(1)">實體(Get)</a>
    <a href="javascript:exists('Batman')">驗證(Get)</a>
</fieldset>
<script>

    //驗證
    function exists(name) {
        $.ajax({
            url: "/app/v1/rest/exists/" + name,
            type: "GET",
            data: {},
            success: function (data) {
                alert(JSON.stringify(data));
            }
        });
    }

    //列表
    function get(id) {
        $.ajax({
            url: "/app/v1/rest/" + id,
            type: "GET",
            data: {},
            success: function (data) {
                alert(JSON.stringify(data));
            }
        });
    }

    //新增
    function add() {
        $.ajax({
            url: "/app/v1/rest/",
            type: "POST",
            data: { "UserID": 4, "UserName": "test", "UserEmail": "[email protected]" },
            success: function (data) { alert(JSON.stringify(data)); }

        });
    }

    //更新
    function update(id) {
        $.ajax({
            url: "/app/v1/rest?id=" + id,
            type: "Put",
            data: { "UserID": 1, "UserName": "moditest", "UserEmail": "[email protected]" },
            success: function (data) { alert(JSON.stringify(data)); }
        });
    }

    //刪除
    function deletes(id) {
        $.ajax({
            url: "/app/v1/rest/" + id,
            type: "DELETE",
            success: function (data) { alert(JSON.stringify(data)); }
        });
    }
</script>