搭建.Net WebApi并配置Swagger(一)

打印 上一主题 下一主题

主题 889|帖子 889|积分 2667

C#进阶之WebAPI(一)
那么起首第一点:什么是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、WebService、WebAp、一样寻常处置惩罚步伐。
      那来了解一下他们之间的区别:
        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非常适合构建移动客户端服务。
 

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

钜形不锈钢水箱

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表