• (转)C#进阶之WebAPI


    转:https://www.cnblogs.com/yuchenghao/p/10598825.html

    首先第一点:什么是WebAPI?

        首先我们了解一下.net framework 的框架构成,

        

        可以看到,WebAPI和mvc同属于B/S模板框架的一种,官方对于WebApi的定义是:WebAPI是一个框架,可以轻松构建HTTP服务,覆盖广泛的客户端,包括浏览器和移动设备,WebAPI是在.NetFramwork上构建RESTful程序的理想平台。

        这里有必要解释一下什么是RESTful: RESTful是一种设计风格,REST中的 get、post、put、delete来进行数据的增删改查,如果开发人员的应用程序符合RESTful原则,那他的服务可被称之为“Restful风格应用服务”

    然后我们了解一下:为什么要使用WebAPI?

        在解释这个问题之前我们需要首先知道一下.net为外部提供接口的方式有哪些?

        答:WCF、WebServiceWebAp、一般处理程序。

          那来了解一下他们之间的区别:

            WebService

                1:基于soap协议,数据格式是xml、

                2:只支持http协议、

                3:不是开源的,但是可以被任意一个了解xml的人使用、

                4:只能部署在iis上。

            WCF

                1:基于soap协议,数据格式是xml、

                2:WCF是webservice的进化版,支持各种各样的协议,像TCP、http、https、NamedPipes、MSMQ等、

                3:不是开源的,但是可以被任意一个了解xml的人使用、

                4:可以部署在应用程序中、IIS上或者Windows服务中。

            WebAPI

                1:是一个简单的构建http服务的新框架、

                2:在.net平台上WebAPI是一个开源的、理想的、构建RESTful服务的技术、

                3:可以使用http的所有特点,(比如URIs、request/response头、缓存、版本控制、多种内容格式)、

                4:支持mvc的特性,像路由、控制器、action、fiter、模型绑定、控制反转、依赖注入、单元测试、

                5:可以部署在应用程序中、IIS上、

                6:是一个轻量级的框架,对各种终端的支持都很好、

                7:Response可以被webAPI的MediaTypeFormatter转换成json、XML或者任何你想转换的格式。

            一般处理程序

                一般处理程序其实就是和页面处理程序相区分开的,因为实现的是IhttpHandler接口,而且不需要继承自Page类。所以没有那么多的事件需要处理,不必消耗太多资源,所以性能方面要比aspx高。

    那么回到这个问题,为什么要使用WebApi?

            当你遇到下面这些情况的时候,就可以考虑使用webAPI来构建你的服务了;

                1:需要webservice但是不需要soap、

                2:需要在已有的WCF服务基础上建立non-soap-based http服务、

                3:只想发布一些简单的http服务,不想使用相对复杂的wcf配置、

                4:发布的服务会被限制带宽的设备访问、

                5:希望使用开源框架,关键时刻可以自己调试或者自定义一下框架。

    最后总结一下WebAPI和MVC之间的区别:WebAPI和MVC之间有什么区别?

            相信使用过mvc和webapi的同学都会觉得这两者太相似了,使用起来也差不多,但是既然是两个框架,那肯定是有区别的,我对WebAPI和MVC的区别做了一下总结:

                1:MVC主要是用来构建网站的,既关心数据也关心页面展示,而WebAPI只关心数据、

                2:WebAPI支持格式协商,客户端可以通过Accept header通知服务器期望的格式、

                3:WebApi支持Self Host,MVC目前不支持、

                4:WebAPI通过不同的http verb表达不同的动作(CRUD),MVC则通过Action名字表达动作、

                5:WebAPI内建于System.Web.Http 命名空间下,而MVC位于Systm.Web.Mvc命名空间下,因此路由等有些许不同、

                6:WebAPI非常适合构建移动客户端服务。

  • 相关阅读:
    Express 2015 RC for Windows 10 安装
    离线下载Express 2015 for Windows 10
    离线下载Express 2015 for Windows 10
    windows 10预览版升级win10 7月29 10240.16384
    windows 10预览版升级win10 7月29 10240.16384
    C# 获得系统环境
    C# 获得系统环境
    C++宽字符串转字符串
    C++宽字符串转字符串
    C++ md5类,封装好
  • 原文地址:https://www.cnblogs.com/wangle1001986/p/11950001.html
Copyright © 2020-2023  润新知