WebApi RESTful接口实例及ajax调用

版权声明:本文为博主原创文章,只为分享而编,欢迎各位学习以及转载。 https://blog.csdn.net/qq285679784/article/details/82462401

实例图片

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>

猜你喜欢

转载自blog.csdn.net/qq285679784/article/details/82462401