目录
C#进阶系列——WebApi 路由机制剖析:你准备好了吗? ................................................................................................... 3
一、MVC和WebApi路由机制比较 ........................................................................................................................................ 5
1、MVC里面的路由 ......................................................................................................................................................... 5
2、WebApi里面的路由 ................................................................................................................................................... 5
二、WebApi路由基础 ............................................................................................................................................................. 7
1、默认路由 ..................................................................................................................................................................... 7
2、自定义路由 ............................................................................................................................................................... 10
2.1、自定义路由一:匹配到action ................................................................................................................. 11
2.2、自定义路由二 ............................................................................................................................................... 12
3、路由原理 ................................................................................................................................................................... 12
三、WebApi路由过程 ........................................................................................................................................................... 13
1、根据请求的url匹配路由模板 .............................................................................................................................. 13
2、找到控制器 ............................................................................................................................................................... 13
3、找到action ............................................................................................................................................................. 15
四、WebApi特性路由 ........................................................................................................................................................... 16
1、启动特性路由 ........................................................................................................................................................... 17
2、最简单的特性路由 ................................................................................................................................................... 17
3、带参数的特性路由 ................................................................................................................................................... 19
4、参数的约束和默认值 ............................................................................................................................................... 20
5、路由前缀 ................................................................................................................................................................... 20
五、第一个Restful风格的WebApi服务 ......................................................................................................................... 21
六、总结 ................................................................................................................................................................................. 22
C#进阶系列——WebApi 异常处理解决方案 ......................................................................................................................... 23
一、使用异常筛选器捕获所有异常 ..................................................................................................................................... 24
1、接口级别 ........................................................................................................................................................... 31
2、控制器级别 ....................................................................................................................................................... 33
3、全局配置 ........................................................................................................................................................... 34
二、HttpResponseException自定义异常信息 .............................................................................................................. 35
三、返回HttpError ............................................................................................................................................................ 37
四、总结 ................................................................................................................................................................................. 38
C#进阶系列——WebApi 接口返回值不困惑:返回值类型详解 ......................................................................................... 39
一、void无返回值 ............................................................................................................................................................... 40
二、IHttpActionResult .................................................................................................................................................... 42
1、Json(T content) ........................................................................................................................................... 42
2、Ok()、 Ok(T content) ................................................................................................................................. 45
3、NotFound() ............................................................................................................................................................. 47
4、其他 ........................................................................................................................................................................... 49
4.1、Content(HttpStatusCode statusCode, T value) .................................................................. 49
4.2、BadRequest() ............................................................................................................................................ 49
4.3、Redirect(string location) ................................................................................................................ 50
5、自定义IHttpActionResult接口的实现 ............................................................................................................ 50
三、HttpResponseMessage ............................................................................................................................................... 53
四、自定义类型 ..................................................................................................................................................................... 54
五、总结 ................................................................................................................................................................................. 55
C#进阶系列——WebApi 接口参数不再困惑:传参详解 ..................................................................................................... 56
一、get请求 ......................................................................................................................................................................... 57
1、基础类型参数 ........................................................................................................................................................... 57
2、实体作为参数 ........................................................................................................................................................... 58
3、数组作为参数 ........................................................................................................................................................... 62
4、“怪异”的get请求 .................................................................................................................................................. 62
(1)WebApi的方法名称以get开头 ................................................................................................................ 62
(2)WebApi的方法名称不以get开头 ............................................................................................................ 64
二、post请求 ....................................................................................................................................................................... 66
1、基础类型参数 ........................................................................................................................................................... 66
(1)错误的写法 ................................................................................................................................................... 66
(2)正确的用法 ................................................................................................................................................... 67
(1)错误写法 ....................................................................................................................................................... 68
(2)正确用法 ....................................................................................................................................................... 69
(3)推荐用法 ....................................................................................................................................................... 70
2、实体作为参数 ........................................................................................................................................................... 70
(1)单个实体作为参数 ....................................................................................................................................... 70
(2)实体和基础类型一起作为参数传递 ........................................................................................................... 73
3、数组作为参数 ........................................................................................................................................................... 74
(1)基础类型数组 ............................................................................................................................................... 74
(2)实体集合 ....................................................................................................................................................... 74
4、后台发送请求参数的传递 ....................................................................................................................................... 75
三、put请求 ......................................................................................................................................................................... 77
1、基础类型参数 ........................................................................................................................................................... 77
2、实体作为参数 ........................................................................................................................................................... 77
3、数组作为参数 ........................................................................................................................................................... 78
四、delete请求 ................................................................................................................................................................... 78
五、总结 ................................................................................................................................................................................. 79
C#进阶系列——WebApi 身份认证解决方案:Basic基础认证.......................................................................................... 80
一、为什么需要身份认证 ..................................................................................................................................................... 81
1、我们不加身份认证,匿名用户可以直接通过url随意访问接口: ........................................................... 81
2、增加了身份认证之后,只有带了我们访问票据的请求才能访问我们的接口。 ....................................... 82
二、Basic基础认证的原理解析 ......................................................................................................................................... 84
1、常见的认证方式 ....................................................................................................................................................... 84
2、Basic基础认证原理 ............................................................................................................................................... 85
三、Basic基础认证的代码示例 ......................................................................................................................................... 85
1、登录过程 ................................................................................................................................................................... 85
1.1、Web前端 ....................................................................................................................................................... 85
1.2、登录的API接口 .......................................................................................................................................... 86
2、/Home/Index主界面 .............................................................................................................................................. 88
3、WebApiCORS验证部分(重点) ............................................................................................................................ 90
3.1、在WebApiCORS项目里面自定义一个类RequestAuthorizeAttribute,去继承我们的AuthorizeAttribute这个类。然后重写OnAuthorization方法,在这个方法里面取到请求头的Ticket信息,然后校验用户名密码是否合理。 ............................................................................................................. 90
3.2、在具体的Api接口增加我们上面自定义类的特性 .................................................................................. 91
四、优化 ................................................................................................................................................................................. 92
1、解决API的问题 ...................................................................................................................................................... 92
2、解决ajax的问题 .................................................................................................................................................... 93
3、解决特殊不想使用验证的方法 ............................................................................................................................... 94
五、总结 ................................................................................................................................................................................. 95
C#进阶系列——WebApi 跨域问题解决方案:CORS ............................................................................................................. 95
一、跨域问题的由来 ............................................................................................................................................................. 96
二、跨域问题解决原理 ......................................................................................................................................................... 96
三、跨域问题解决细节 ......................................................................................................................................................... 96
1、场景描述 ................................................................................................................................................................... 97
2、场景测试 ................................................................................................................................................................... 99
1)我们不做任何的处理,直接将两个项目运行起来。看效果如何 ............................................................... 99
2)使用CORS跨域 ................................................................................................................................................ 99
3)CORS的具体参数设置。 ............................................................................................................................... 103
四、总结 ............................................................................................................................................................................... 104
C#进阶系列——WebApi 接口测试工具:WebApiTestClient ........................................................................................ 105
一、WebApiTestClient介绍 ........................................................................................................................................... 106
二、WebApiTestClient展示 ........................................................................................................................................... 106
三、WebApiTestClient使用 ........................................................................................................................................... 116
1、如何引入组件 ......................................................................................................................................................... 116
2、如何使用组件 ......................................................................................................................................................... 118
1、修改Api.cshtml文件 ................................................................................................................................. 118
2、配置读取注释的xml路径 ............................................................................................................................ 119
3、测试接口 ......................................................................................................................................................... 121
四、总结 ............................................................................................................................................................................... 123
2022-02-11 10:09:19
3.21MB
WebApi
1