《ASP.NET Web API 2框架揭秘》PDF下载

  • 购买积分:20 如何计算积分?
  • 作  者:蒋金楠著
  • 出 版 社:北京:电子工业出版社
  • 出版年份:2014
  • ISBN:7121235368
  • 页数:713 页
图书介绍:

第1章 概述 1

1.1 何为Web 2

1.1.1 TCP/IP与HTTP 2

1.1.2 Web资源 4

1.1.3 HTTP事务 6

1.1.4 HTTP报文 7

1.2 RESTful Web API 8

1.2.1 为什么叫这个奇怪的名字 9

1.2.2 RESTful Web API具有怎样的特征 10

1.3 初识ASP.NETWeb API 18

1.3.1 构建解决方案 18

1.3.2 定义Web API 20

1.3.3 以Web Host方式寄宿Web API 21

1.3.4 以SelfHost方式寄宿Web API 27

1.3.5 利用HttpClient调用Web API 28

1.3.6 创建一个“联系人管理器”应用 31

第2章 路由 41

2.1 ASP.NET路由 42

2.1.1 请求URL与物理文件的分离 42

2.1.2 实例演示:通过URL路由实现请求地址与Web页面的映射 43

2.1.3 ASP.NET路由系统 47

2.1.4 注册路由映射 55

2.1.5 根据路由规则生成URL 68

2.1.6 HttpHandler的动态映射 70

2.2 ASP.NET Web API路由 73

2.2.1 请求与响应 73

2.2.2 ASP.NET Web API路由系统 77

2.2.3 注册路由映射 91

2.3 两个路由系统的衔接 94

2.3.1 HostedHttpRoute与HostedHttpRouteCollection 94

2.3.2 HttpControllerRouteHandler与HttpControllerHandler 100

第3章 消息处理管道 103

3.1 HttpMessageHandler管道 104

3.1.1 HttpMessageHandler 104

3.1.2 DelegatingHandler 106

3.1.3 HttpServer 107

3.1.4 HttpRoutingDispatcher 114

3.2 Web Host模式下的消息处理管道 119

3.2.1 HttpControllerHandler 119

3.2.2 实例演示:自定义HttpMessageHandler实现HTTP方法重写(S305) 126

3.3 SelfHost模式下的消息处理管道 130

3.3.1 HttpBinding 130

3.3.2 HttpSelfHostServer 136

第4章 HttpController的激活 145

4.1 HttpController 146

4.1.1 HttpControllerContext 147

4.1.2 HttpControllerDescriptor 147

4.1.3 ApiController 149

4.2 HttpController是如何被创建的 151

4.2.1 程序集的解析 151

4.2.2 HttpController类型的解析 161

4.2.3 HttpController的选择 165

4.2.4 HttpController的创建 173

4.2.5 HttpController的激活与释放 178

4.3 IoC的应用 183

4.3.1 利用Unity来认识IoC 183

4.3.2 基于IoC的HttpControllerActivator 185

4.3.3 基于IoC的DependencyResolver 188

第5章 Action的选择 191

5.1 HttpActionDescriptor 192

5.1.1 ReflectedHttpActionDescriptor 193

5.1.2 ActionNameAttribute 194

5.1.3 方法名决定HTTP方法 195

5.1.4 ActionHttpMethodProvider 197

5.1.5 针对特性的缓存 200

5.2 HttpParameterDescriptor 201

5.2.1 ReflectedHttpParameterDescriptor 202

5.2.2 实例演示:解析Action方法参数描述信息 204

5.3 HttpActionSelector 205

5.3.1 ApiControllerActionSelector 206

5.3.2 有效的Action方法 207

5.3.3 目标Action方法的选择 208

第6章 特性路由 218

6.1 特性路由注册 219

6.1.1 HttpRouteInfoProvider特性 219

6.1.2 基本路由映射 220

6.1.3 让URL模板能够尽可能反映资源的层次结构 222

6.1.4 为路由变量设置约束 226

6.1.5 通配符路由变量 227

6.1.6 缺省路由变量 228

6.1.7 设置URI前缀 230

6.2 约束表达式的解析 231

6.2.1 RangeRouteConstraint 232

6.2.2 InlineConstraintResolver 233

6.2.3 自定义约束 237

6.3 路由解析 241

6.3.1 RouteCollectionRoute 241

6.3.2 实例演示:查看特性路由注册生成的RouteCollectionRoute对象 243

6.3.3 子路由对象的创建 248

6.3.4 HttpRouteData的生成 255

第7章 Model绑定(上篇) 262

7.1 Model绑定解决怎样的问题 263

7.1.1 基于HttpRouteData的参数绑定 263

7.1.2 基于查询字符串的参数绑定 267

7.2 Model元数据的解析 268

7.2.1 Model元数据的层次化结构 268

7.2.2 ModelMetadata 270

7.2.3 ModelMetadataProvider 278

7.3 ValueProvider 282

7.3.1 ValueProviderResult 282

7.3.2 NameValuePairsValueProvider 285

7.3.3 RouteDataValueProvider与QueryStringValueProvider 295

7.3.4 CompositeValueProvider 296

7.4 ValueProviderFactory 296

7.4.1 RouteDataValueProviderFactory与QueryStringValueProviderFactory 297

7.4.2 CompositeValueProviderFactory 298

7.4.3 ValueProviderFactory的注册 299

7.4.4 自定义ValueProviderFactory 301

第8章 Model绑定(下篇) 304

8.1 ModelBinder 305

8.1.1 ModelBindingContext 306

8.1.2 去除前缀后的二次绑定 307

8.1.3 CompositeModelBinder 309

8.2 ModelBinderProvider 310

8.2.1 CompositeModelBinderProvider 311

8.2.2 ModelBinderAttribute 312

8.2.3 Model绑定的流程 313

8.3 针对不同目标类型的Model绑定 314

8.3.1 简单类型 315

8.3.2 复杂类型 318

8.3.3 集合 327

8.3.4 数组 340

8.3.5 字典 343

8.3.6 最后一个ModelBinder 350

8.4 ModelState 355

8.4.1 ApiController的ModelState 355

8.4.2 实例演示:获取Model绑定过程中由ValueProvider提供的数据(S808) 357

第9章 参数的绑定 359

9.1 参数绑定系统全景展示 360

9.1.1 HttpParameterBinding 361

9.1.2 ActionValueBinder 362

9.2 5个原生的HttpParameterBinding 365

9.2.1 ModelBinderParameterBinding 365

9.2.2 FormatterParameterBinding 368

9.2.3 HttpRequestParameterBinding 387

9.2.4 CancellationTokenParameterBinding 388

9.2.5 ErrorParameterBinding 390

9.3 HttpParameterBinding的创建策略 392

9.3.1 ParameterBindingAttribute特性 392

9.3.2 注册参数绑定规则 397

9.3.3 HttpParameterBinding的创建策略 400

第10章 参数的验证 406

10.1 几种参数验证方式 407

10.1.1 手工验证绑定的参数 407

10.1.2 使用ValidationAttribute特性 411

10.1.3 创建自我验证数据类型 416

10.2 以ModelValidator为核心的参数验证系统 418

10.2.1 DataAnnotationsModelValidator 421

10.2.2 RequiredMemberModelValidator 422

10.2.3 ValidatableObjectAdapter 425

10.2.4 ErrorModelValidator 426

10.3 基于数据注解特性的参数验证 431

10.3.1 ValidationAttribute特性 431

10.3.2 DataAnnotationsModelValidator 437

10.3.3 DataAnnotationsModelValidatorProvider 439

10.4 参数验证流程 442

10.4.1 ModelValidationNode 443

10.4.2 “验证树”是如何被建立起来的 448

10.4.3 “必需”数据成员的验证 457

10.4.4 BodyModelValidator 462

第11章 Action的执行 472

11.1 Action方法的执行 473

11.1.1 HttpActionInvoker 473

11.1.2 ActionExecutor 477

11.2 内容协商 484

11.2.1 ContentNegotiator 484

11.2.2 MediaTypeFormatter是如何被筛选出来的 486

11.2.3 如何确定响应字符集 498

11.3 HttpActionResult 501

11.3.1 无响应主体的HttpActionResult 502

11.3.2 含响应主体的HttpActionResult 506

11.3.3 ResponseMessageResult 517

11.4 HttpResponseMessage的生成 518

11.4.1 ActionResultConverter 518

11.4.2 从消息处理管道来看HttpResponseMessage的生成 523

第12章 过滤器 527

12.1 Filter及其提供机制 528

12.1.1 Filter 528

12.1.2 FilterProvider 531

12.1.3 5种Filter类型 539

12.2 认证与授权 540

12.2.1 Identity 540

12.2.2 Principal 544

12.2.3 AuthenticationFilter 548

12.2.4 AuthorizationFilter 554

12.3 针对Action方法执行前后的拦截 558

12.3.1 ActionFilterAttribute 559

12.3.2 实例演示:利用自定义ActionFilter实现对Action方法执行结果的缓存 565

12.4 异常处理与Filter的屏蔽 572

12.4.1 ExceptionFilter 572

12.4.2 实例演示:利用自定义的ExceptionFilter集成EntLib进行异常处理(S1208) 574

12.4.3 OverrideFilter 579

第13章 安全 585

13.1 IIS/ASP.NET认证 586

13.1.1 Basic认证 586

13.1.2 Digest认证 591

13.1.3 集成Windows认证 594

13.1.4 Forms认证 602

13.2 SSL/TLS 608

13.2.1 非对称加密 608

13.2.2 通过SSL/TLS实现传输安全 614

13.2.3 SSL/TLS的应用 615

13.3 第三方认证 619

13.3.1 OAuth 2.0简介 620

13.3.2 Implicit Authorization Grant 624

13.3.3 Authorization Code Authorization Grant 632

第14章 跨域资源共享 643

14.1 同源策略 644

14.1.1 实例演示:跨域调用Web API 645

14.1.2 JSONP 648

14.2 CORS规范 654

14.2.1 资源的授权 654

14.2.2 实例演示:利用自定义的MessageHandler支持跨域资源共享 658

14.3 CORS在ASP.NET Web API中的实现 667

14.3.1 实例演示:采用ASP.NET Web API原生的机制实现跨域资源共享(S 1406) 668

14.3.2 CORS授权策略及其提供机制 670

14.3.3 资源授权的检验和CORS 响应报头的生成 675

14.3.4 CorsMessageHandler 678

第15章 Web API的调用 685

15.1 HttpClient 686

15.1.1 HttpMessageInvoker 686

15.1.2 HttpClientHandler 687

15.1.3 HttpClient 697

15.2 客户端消息处理管道 700

15.2.1 HttpMessageHandler管道 700

15.2.2 HttpClientFactory 703

15.3 面向“对象”编程 704

15.3.1 将数据对象写入请求消息 704

15.3.2 读取HTTP消息主体内容并反序列化为数据对象 707

附录A 实例列表 709