WebApi和MVC的区别
使⽤上区分,mvc主要⽤于建站,web api主要⽤于构建http服务,当然你⾮要⽤mvc来构建Uri式的Api也⾏,不过显然是没有这个必要的,⼀个不恰当的⽐喻就像是你也可以玩破解版的单机游戏,也可以通过平台进⾏联机,但是始终不如steam上来得爽是吧。
⾃⾝实现上区分的话,两种框架主要是在Asp .Net的基础上进⾏改造,主要是对HttpModule和HttpHandler做了扩展,实现⽅法是不⼀
aspnet和net的区别样的,⽐如说前者更像是在⼀层上建了第⼆层,引伸出更强⼤的路由机制,实现了诸如MvcHandler和ControllerFactory这种消息处理和后台控制器⽅法选择机制,Web Api除了扩展了前者以外,另外写出了
⼀套独⽴的,独⽴于Asp .Net的消息处理管道,就像是借鉴原来房⼦的模型,重新设计出了另外⼀套别墅。这也很好地解释了为什么Web Api可以寄宿在不同的宿主上(寄宿的本质就是利⽤⼀个具体的应⽤程序为Web Api提供⼀个运⾏的环境,并解决请求的接收和响应的回复),如Web Host,Self Host⽅式,这和WCF是相似的。⽽MVC只能寄宿于IIS上(不考虑 core),就像Webform的寄宿⽅式。何况它们两者虽然都有Controller和Action,但是请求的实现和响应的回复机制也是不同的,⽐如说Web Api处理消息有两个核⼼类是HttpRequestMessage和HttpResponseMessage。这两种框架最多只能说是模式上类似,实现上还是有很⼤差别的。不过两者都是Asp .Net的组成成员,图上表现得很清楚了。
⾸先,两者的主要解决的问题不同!
MVC的主要使⽤场景在于Web站点的开发,他在后端实现了⼀套完整的MVC开发框架,能提供⽅便的页⾯开发,默认使⽤Razor视图引擎,提供了后端html构造,⽤户可以⽅便地开发出带页⾯的站点。
⽽WebAPI主演提供了⼀套RestfulAPI的开发框架,提供了较为完整的http语义⽀持,主要⽤来做开放API,更抽象,更不注重View的⽣成。从实现的⾓度看,虽然他俩捆绑在⼀起,但是两者处理管线还是不同的。
如果你对http有较为深⼊理解后,你就会发现,其实他俩的界限没那么明显,那么你也许会觉得mvc做
的事webAPI都能做,因为他更抽象,有时候你⼜不想把两者的界限搞得那么清晰

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。