C# Web Api一个小例子

时间:2018-07-03 22:32:58   收藏:0   阅读:3149

 

1) 认识Web Api(C#)

ASP.NET Web API是一个框架,可以轻松构建HTTP服务,覆盖广泛的客户端,包括浏览器和移动设备。 ASP.NET Web API是在.NET Framework上构建RESTful应用程序的理想平台。

那么RESTful又是什么?

简单的解释,RESTful属于一种设计风格,REST中的GET,POST,PUT DELETE来进行数据的增删改查,如果开发人员的应用程序符合RESTful原则,则它的服务称为"RESTful风格应用服务"

2) 新建项目使用Web Api

只需要建立一个空项目,并勾选Web Api即可。

技术分享图片

3) 观察项目结构

WebApiMVC结构上有着异曲同工的妙处,在MVC6中还合并了两个框架,曾经有位大牛说过“WebApi就是MVC的一部分”。我们先看下这个WebApiConfig.cs文件内的路由配置。

技术分享图片

可以看到WebApi的路由是通过api/{controller}/{id}的方式请求的方式,不像MVC的模式有action。但我们也可以修改成MVC模式那样,但是微软不建议,我们先用这个默认的方式试一下。

技术分享图片

4) 新建控制器

Controllers控制器新建控制器,选择包含读/写操作的Web API2控制器”确定。

技术分享图片

 

会默认新建一个DefaultController.cs文件,里面代码如下,继承了ApiController类。可以看到要想访问某个控制器的某个”方法”,只需要根据对应的提交方法和参数提交,就可以执行对应的”方法”了。

    public class DefaultController : ApiController

    {

        // GET: api/Default

        public IEnumerable<string> Get()

        {

            return new string[] { "value1", "value2" };

        }

 

        // GET: api/Default/5

        public string Get(int id)

        {

            return "value";

        }

 

        // POST: api/Default

        public void Post([FromBody]string value)

        {

        }

 

        // PUT: api/Default/5

        public void Put(int id, [FromBody]string value)

        {

        }

 

        // DELETE: api/Default/5

        public void Delete(int id)

        {

        }

}

 

新建一个html页面,利用ajax get异步请求Default控制器,因为get请求不带参数,所以会默认找到Get()这个方法,返回字符数组。运行程序,打开html页面。

 技术分享图片

弹出了返回的数据。

 技术分享图片

修改url路径为有id在后面,请求的是带id参数的get方法

 技术分享图片

技术分享图片

新建一个类,作为post请求使用

 技术分享图片

修改post提交的方法,接受Class1类并返回新的值

 技术分享图片

修改ajax提交方式为post,增加data参数,组装成Class1类的数据,提交。接收返回并弹出。

 技术分享图片

技术分享图片

修改put提交的方法,接受Class1类,id并返回新的值

 技术分享图片

修改ajax提交方式为put,增加data参数,请求链接加上id,组装成Class1类的数据,提交。接收返回并弹出

 技术分享图片

技术分享图片

修改修改delete提交的方法,当id有值时等于删除成功

 技术分享图片

修改ajax提交方式为deleteurl提供删除的数据的id,获取返回值弹出

 技术分享图片

技术分享图片

 

还可以修改默认路由为MVC的方式,不过访问时要建立对应的action方法。

 技术分享图片

 

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!