《ASP.NET Web API设计》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:(美)布洛克著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2015
  • ISBN:9787115377722
  • 页数:430 页
图书介绍:本书分三部分,第一部分介绍使用ASP.NET开发Web API的基础知识,包括Web架构、HTTP协议、Web API的基本概念;第二部分讨论Web API开发,围绕Issue Tracker示例应用讲解了整体设计、媒体类型选择及超媒体;第三部分深入探讨了ASP.NET Web API的不同部分如何协同及其他高级内容。

第一部分 基础知识 3

第1章 因特网、万维网和HTTP协议 3

1.1 Web体系结构 4

1.1.1资源 5

1.1.2 URI 5

1.1.3酷URI 6

1.1.4表示 6

1.1.5媒体类型 7

1.2 HTTP协议 8

1.2.1 HTTP 1.1之后 9

1.2.2 HTTP消息交换 9

1.2.3中间层 10

1.2.4中间层类型 11

1.2.5 HTTP方法 12

1.2.6标头 15

1.2.7 HTTP状态码 16

1.2.8内容协商 16

1.2.9缓存 16

1.2 10身份验证 19

1.2.11身份验证方案 20

1.2.12附加身份验证方案 20

1.3小结 21

第2章 Web API 22

2.1什么是Web API 22

2.2 SOAP Web服务 22

2.3 Web API的起源 23

2.4 Web API革命开始 23

2.5关注Web 23

2.6 Web API指南 24

2.7特定领域的媒体类型 24

2.8媒体类型档案 25

2.9多个表示 26

2.10 API风格 27

2.10.1 Richardson成熟度模型 28

2.10.2 RPC(RMM第0级) 28

2.10.3资源(RMM第1级) 30

2.10.4 HTTP谓词(RMM第2级) 32

2.10.5以资源为中心的API 34

2.10.6超媒体(RMM第3级) 35

2.10.7 REST 39

2.10.8 REST约束 39

2.11小结 41

第3章 ASP.NETWeb API 101 42

3.1核心场景 42

3.1.1第一类HTTP编程 43

3.1.2对称的客户端和服务器编程体验 44

3.1.3对不同格式的灵活支持 45

3.1.4告别“尖括号编码” 45

3.1.5支持单元测试 45

3.1.6多种托管选项 46

3.2 ASP.NET Web API入门 46

3.3新建Web API项目 50

3.3.1 WebApiConfig 50

3.3.2 ValuesController 52

3.4 “Hello Web API!” 53

3.4.1创建服务 53

3.4.2客户端 60

3.4.3宿主 60

3.5小结 61

第4章 处理架构 62

4.1托管层 64

4.2消息处理程序管道 65

4.3控制器处理 69

4.4小结 75

第二部分 真实世界的API开发 79

第5章 应用程序 79

5.1为什么要可演化 80

5.1.1演化的障碍 81

5.1.2代价是什么 81

5.1.3为什么不创建新版本 83

5.1.4付诸实践 86

5.2应用程序目标 86

5.2.1目标 86

5.2.2机会 87

5.3信息模型 87

5.3.1子域 88

5.3.2相关资源 88

5.3.3属性组 89

5.3.4属性组的集合 90

5.3.5信息模型与媒体类型 90

5.3.6问题集合 91

5.4资源模型 92

5.4.1根资源 92

5.4.2搜索资源 92

5.4.3集合资源 92

5.4.4个体资源 93

5.5小结 95

第6章 媒体类型选择与设计 96

6.1自描述 96

6.2协议类型 97

6.3媒体类型 97

6.3.1原始格式 97

6.3.2流行格式 99

6.3.3新格式 100

6.3.4超媒体类型 102

6.3.5媒体类型爆炸 102

6.3.6通用媒体类型和档案 102

6.3.7其他超媒体类型 106

6.4链接关系类型 107

6.4.1语义 107

6.4.2替换嵌入资源 109

6.4.3间接层 109

6.4.4引用数据 110

6.4.5工作流 111

6.4.6语法 112

6.4.7完美结合 114

6.5设计新的媒体类型协议 114

6.5.1选择格式 115

6.5.2支持超媒体 116

6.5.3可选、强制、省略和适用 116

6.5.4嵌入元数据和外部元数据 117

6.5.5可扩展性 117

6.5.6注册媒体类型 119

6.6设计新的链接关系 119

6.6.1标准链接关系 119

6.6.2扩展链接关系 120

6.6.3嵌入链接关系 121

6.6.4注册链接关系 121

6.7问题跟踪域中的媒体类型 121

6.7.1 list资源 122

6.7.2 item资源 123

6.7.3 discovery资源 124

6.7.4 search资源 125

6.8小结 125

第7章 构建API 126

7.1设计 126

7.2获得源代码 127

7.3使用行为驱动开发构建实现 127

7.4浏览解决方案 127

7.5软件包和程序库 128

7.6自托管 128

7.7模型和服务 130

7.7.1问题和问题库 130

7.7.2IssueState 130

7.7.3IssuesState 131

7.7.4 Link 133

7.7.5 LinkeStateFactory 133

7.7.6 LinkFactory 134

7.7.7IssueLinkFactory 135

7.8验收标准 136

7.9功能:获取问题 139

7.9.1获取一个问题 142

7.9.2获取未关闭的和已关闭的问题 144

7.9.3获取不存在的问题 146

7.9.4获取所有问题 147

7.9.5获取所有问题的Collection+Json表示 150

7.9.6搜索问题 152

7.10功能:创建问题 153

7.11功能:更新问题 156

7.11.1更新一个问题 156

7.11.2更新不存在的问题 158

7.12功能:删除问题 159

7.12.1删除一个问题 159

7.12.2删除不存在的问题 160

7.13功能:处理问题 161

7.13.1测试 161

7.13.2实现 161

7.14小结 163

第8章 改进API 164

8.1新功能的验收标准 164

8.2实现输出缓存支持 166

8.3添加输出缓存测试 167

8.4实现缓存重验证 169

8.5为缓存重验证实现条件GET 170

8.6冲突检测 173

8.7实现冲突检测 174

8.8变更审计 176

8.9使用Hawk认证实现变更审计 177

8.10跟踪 181

8.11实现跟踪 182

8.12小结 184

第9章 构建客户端 185

9.1客户端程序库 186

9.1.1封装库 186

9.1.2链接用作函数 189

9.2应用程序工作流 194

9.2.1用户需知 195

9.2.2带有使命的客户端 198

9.2.3客户端状态 201

9.3小结 201

第三部分 Web API细节 205

第10章 HTTP编程模型 205

10.1消息 206

10.2标头 210

10.3消息内容 215

10.3.1使用消息内容 216

10.3.2创建消息内容 218

10.4小结 226

第11章 托管 227

11.1 Web托管 228

11.1.1 ASP. NET基础结构 228

11.1.2 ASP.NET路由 230

11.1.3 Web API路由 232

11.1.4全局配置 234

11.1.5 Web API ASP.NET处理程序 235

11.2自托管 238

11.2.1 WCF架构 238

11.2.2 HttpSelfHostServer类 240

11.2.3 HttpSelfHostConfiguration类 241

11.2.4 URL预留和访问控制 242

11.3用OWIN和Katana托管Web API 243

11.3.1 OWIN 244

11.3.2 Katana项目 245

11.3.3 Web API配置 247

11.3.4 Web API中间件 248

11.3.5 OWIN生态环境 250

11.4内存托管 250

11.5 Azure Service Bus Host 252

11.6小结 256

第12章 控制器和路由 257

12.1 HTTP消息流概览 257

12.2消息处理程序管道 258

12.2.1分发程序 262

12.2.2 HttpControllerDispatcher 263

12.2.3控制器选择 263

12.2.4控制器激活 266

12.3控制器管道 267

12.3.1 ApiController 267

12.3.2 ApiController处理模型 268

12.4小结 279

第13章 格式化程序和模型绑定 280

13.1 ASP.NET Web API中模型的重要性 280

13.2模型绑定如何工作 281

13.3内建的模型绑定器 284

13.3.1 ModelBindingParameterBinder 284

13.3.2值提供程序 285

13.3.3模型绑定器 288

13.3.4只对URI进行模型绑定 290

13.3.5 FormatterParameterBinder实现 291

13.3.6 HttpParameterBinding的默认选择 296

13.4模型验证 296

13.4.1将数据标记属性用于模型 296

13.4.2查询验证结果 297

13.5小结 299

第14章 Http Client 300

14.1 HttpClient类 300

14.1.1生存周期 301

14.1.2封装类 301

14.1.3多个实例 302

14.1.4线程安全 302

14.1.5辅助方法 302

14.1.6抽丝剥茧 303

14.1.7完成的请求无异常 303

14.1.8 内容为王 303

14.1.9取消请求 304

14.1.10 SendAsync 305

14.2客户端消息处理程序 306

14.2.1代理处理程序 308

14.2.2伪响应处理程序 309

14.2.3创建可以重用的响应处理程序 310

14.3小结 311

第15章 安全 312

15.1传输安全 312

15.2在ASP.NET Web API中使用TLS 314

15.2.1 IIS托管时使用TLS 314

15.2.2自托管时使用TLS 316

15.3身份验证 316

15.3.1声明模型 317

15.3.2获取和设置当前用户对象 321

15.3.3基于传输的身份验证 321

15.3.4服务器身份验证 322

15.3.5客户端身份验证 325

15.3.6 HTTP身份验证框架 331

15.3.7实现基于HTTP的身份验证 333

15.3.8 Katana身份验证中间件 334

15.3.9主动和被动的身份验证中间件 338

15.3.10 Web API身份验证筛选器 339

15.3.11基于令牌的身份验证 342

15.3.12 Hawk身份验证方案 348

15.4授权 350

15.4.1授权执行 351

15.4.2跨域资源共享 354

15.4.3 ASP.NET Web API的CORS支持 357

15.5小结 359

第16章 OAuth 2.0授权框架 360

16.1客户端应用程序 362

16.2访问受保护资源 364

16.3获得访问令牌 365

16.4授权码授予 367

16.5范围 369

16.6前通道与后通道 370

16.7刷新令牌 371

16.8资源服务器和授权服务器 372

16.9在ASP.NET Web API中处理访问令牌 373

16.10 OAuth 2.0与身份验证 375

16.11基于范围的授权 378

16.12小结 379

第17章 可测试性 380

17.1单元测试 380

17.1.1使用测试框架 381

17.1.2 Visual Studio单元测试入门 381

17.1.3 xUnit.NET 383

17.1.4单元测试在测试驱动开发中的作用 384

17.2对ASP.NET Web API实现进行单元测试 387

17.2.1测试ApiController 387

17.2.2测试MediaTypeFormmater 393

17.2.3单元测试Http MessageHandler 396

17.2.4 测试ActionFilterAttribute 397

17.3对路由进行单元测试 401

17.4 ASP.NET Web API的集成测试 402

17.5小结 404

附录A媒体类型 405

附录B HTTP标头 406

附录C内容协商 409

附录D缓存实战 413

附录E身份验证工作流 417

附录F application/issue+j son媒体类型规范 420

附录G公钥加密和证书 422