zoukankan      html  css  js  c++  java
  • 在Web Api中实现Http方法(Get,Put,Post,Delete)

    Post(新增),Put(修改),Delete(删除),Get(查询)

    GET:生到数据列表(默认),或者得到一条实体数据

    POST:添加服务端添加一条记录,记录实体为Form对象

    PUT:添加或修改服务端的一条记录,记录实体的Form对象,记录主键以GET方式进行传输

    DELETE:删除 服务端的一条记录

    上面公开的API接口都是在XMLHttpRequest情况下调用的,当然你可以使用jquery的ajax组件来完成这个请求调用

    <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>
    /// <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));
            }
        }

  • 相关阅读:
    洛谷 P4160 [SCOI2009]生日快乐 题解
    洛谷 P1041 传染病控制 题解
    洛谷 P3154 [CQOI2009]循环赛 题解
    洛谷 P1144 最短路计数 题解
    洛谷 P2296 寻找道路 题解
    洛谷 P1514 引水入城 题解
    洛谷 P2661 信息传递 题解
    洛谷 P3958 奶酪 题解
    洛谷 P3501 [POI2010]ANT-Antisymmetry 题解
    【LGR-069】洛谷 2 月月赛 II & EE Round 2 Div.2 A-C题解
  • 原文地址:https://www.cnblogs.com/914556495wxkj/p/7020522.html
Copyright © 2011-2022 走看看