深圳公司网站建立,小程序商店制作,彩虹云商城,建筑一. 简介 1. 什么是WebApi#xff1f; WebApi是一个很广泛的概念#xff0c;在这里我们特指.Net平台下的Asp.Net WebApi框架#xff0c;它是针对各种客户端(浏览器、APP等)来构建Http服务的一个框架#xff0c;它是一种RestFul风格的开发接口的技术#xff0c;它比WebServ…一. 简介 1. 什么是WebApi WebApi是一个很广泛的概念在这里我们特指.Net平台下的Asp.Net WebApi框架它是针对各种客户端(浏览器、APP等)来构建Http服务的一个框架它是一种RestFul风格的开发接口的技术它比WebService更省流量比WCF更简单。下图表示WebApi在.Net平台下的地位。 简单分析WebForms、MVC均为ASP.NET下的Web开发框架WebAPI负责构建HTTP常规服务SignalR负责构建实时服务。个人观点Web Page就是能在浏览器上显示的文档一般是指html文档当然一些如wordpdf等也可算Web Page的总称Web Form是一种特殊的能用控件进行快速开发的Web Page WebAPI和MVC简单对比一下WebAPI是专注于接口开发更专业用户不会直接和WebApi打交道因此WebApi也不会生成界面当然我们完全可以使用MVC来开发接口甚至一般处理程序(HttpHandler)
2. WebApi的功能特点
(1). 支持RestFul风格的的请求即可以通过 Get、Post、Put、Delete请求CRUD操作不需要暴露更多的API。
(2). 方法的返回值可以直接返回对象专注于数据。
(3). 独立于IIS部署(selfhost、winform、控制台)。
(4). 方法可以直接声明为async。
(5). 支持MVC大部分功能但和MVC在路由、Filter、ModelBinder等方面都有一些区别.(这里指.Net FrameWork)。
3. WebApi和MVC的区别
(1). MVC主要用来构建网站所以既关心数据又关心页面而WebApi主要用来构建接口所以只关心数据。
(2). WebApi支持Self Host即独立于IIS部署MVC不支持。.Net Core 下的MVC是支持的
(3). WebApi通过请求方式来区分请求哪个接口MVC则需要通过Action的名字来确定。
(4). WebApi位于System.Web.Http命名空间下而MVC位于System.Web.Mvc命名空间下所以二者在路由、Filter、ModelBinder等方面都有一些区别。
(5). WebApi更轻量更适合构建App的接口服务。
(6). Web API支持格式协商客户端可以通过Accept header通知服务器期望的格式。
4. WebApi和WCF的取舍
(1). 如果服务需要支持One Way Messaging/Message Queue/Duplex Communication选择WCF
(2). 如果服务需要在TCP/Named Pipes/UDP (wcf 4.5)选择WCF
(3). 如果服务需要在http协议上并且希望利用http协议的各种功能选择Web API
(4). 如果服务需要被各种客户端(特别是移动客户端)调用选择Web API 二. Restful 1. 什么是RestFul风格的接口
(1).调用者不再根据方法名称区分请求方法而是通过请求方式进行区分,将所有的操作都抽象成对资源的增删改查。 即新增用Post请求查询用get请求修改用put请求删除用delete请求。
(2).请求的路径中将不在出现方法名称
(3).用Http的返回状态码表示服务器端的处理结果eg找不到用404、没有权限返回201不在需要自己约定状态码。
(4).有利于系统优化浏览器可以自动缓存Get请求。
2. RestFul风格的弊端 理论性太强很容易把初学者搞晕比如 如何通过状态码区分是账号错误还是密码错误 比如登录属于什么操作再比如 一个控制器里有两个方法 GetM1() 和 GetM2(), 两个方法中都没有参数值这种情况如何通过请求方式来区分呢再比如 下面的GetStudets(string str) 和 GetTeachers(string str) 方法参数名都是str所以无法区分可以把其中一个参数名改为str2就不冲突了或者通过别的路由规则声明一下或者给标注个非Get请求的标记比如[HttpPost]总之很麻烦 三. 系列章节 第一节WebApi的纯原生态的RestFul风格接口和路由规则介绍 第二节如何正确使用WebApi和使用过程中的一些坑 第三节总结.Net下后端的几种请求方式(WebRequest、WebClient、HttpClient) 第四节跨域请求的解决方案和WebApi特有的处理方式 第五节WebApi的三大过滤器 第六节WebApi的部署方式(自托管) 第七节WebApi与Unity整合进行依赖注入和AOP的实现 第八节常见安全隐患和传统的基于Session和Token的安全校验 第九节JWT简介和以JSWebApi为例基于JWT的安全校验 第十节进一步扩展两种安全校验方式 第十一节WebApi的版本管理的几种方式 第十二节WebApi自动生成在线Api文档的两种方式 第十三节Asp.Net Core WebApi基础总结和请求处理 第十四节Asp.Net Core WebApi生成在线文档 第十五节Asp.Net Core WebApi路由规则 第十六节XXXX