网站建设费往什么科目,做移动端网站,自媒体平台前十名,163邮箱个人注册入口最近出去面试#xff0c;被问到关于WebAPI的知识#xff0c;因为项目中没有单独写过WebAPI#xff0c;使用的时候是和mvc结合在一起使用的#xff0c;所以#xff0c;在我的印象中WebAPI和mvc是差不多的#xff0c;这种答案当然不能让人满意了#xff0c;于是今天做个关…最近出去面试被问到关于WebAPI的知识因为项目中没有单独写过WebAPI使用的时候是和mvc结合在一起使用的所以在我的印象中WebAPI和mvc是差不多的这种答案当然不能让人满意了于是今天做个关于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、 2WCF是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是一个轻量级的框架对各种终端的支持都很好、 7Response可以被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的区别做了一下总结 1MVC主要是用来构建网站的既关心数据也关心页面展示而WebAPI只关心数据、 2WebAPI支持格式协商客户端可以通过Accept header通知服务器期望的格式、 3WebApi支持Self HostMVC目前不支持、 4WebAPI通过不同的http verb表达不同的动作CRUDMVC则通过Action名字表达动作、 5WebAPI内建于System.Web.Http 命名空间下而MVC位于Systm.Web.Mvc命名空间下因此路由等有些许不同、 6WebAPI非常适合构建移动客户端服务。