ASP.NET Core与RESTful API开发实战
作者:杨万青 著
出版时间: 2020年版
内容简介
ASP.NET Core是微软推出的新一代跨平台、高性能Web开发框架,具有模块化、内置依赖项注入、开源、易于部署等特点。作为近些年来主流的软件架构风格,REST旨在构建简单、可靠、高性能、高伸缩性的Web应用。 本书系统地介绍了如何使用ASP.NET Core开发RESTful API应用,共包含10章内容。前3章主要介绍了REST、HTTP、ASP.NET Core的基础理论。第4~10章根据前3章的理论,并使用C#语言,讲解逐步构建一个完整且规范的RESTful API应用,涉及资源的基本操作、Entity Framework Core、高级查询、日志、缓存、并发、HATEOAS、认证与安全、测试以及部署等内容。
目录
第 1章 REST简介 1
1.1 API与REST 1
1.1.1 什么是API 1
1.1.2 什么是REST 2
1.1.3 REST约束 2
1.1.4 对REST的错误理解 4
1.2 HTTP协议 5
1.2.1 HTTP简介 5
1.2.2 统一资源定位符 5
1.2.3 媒体类型 7
1.2.4 HTTP消息 8
1.2.5 HTTP方法 9
1.2.6 HTTP消息头 10
1.2.7 状态码 12
1.3 REST最佳实践 13
1.4 其他问题 14
1.4.1 JSON和XML 14
1.4.2 API版本 16
1.5 本章小结 16
第 2章 .NET Core和ASP.NET Core 17
2.1 .NET Core简介 17
2.2 .NET Standard简介 18
2.3 ASP.NET Core简介 22
2.3.1 ASP.NET Core主要特性 22
2.3.2 ASP.NET Core 2.1新增特性 23
2.3.3 ASP.NET Core 2.2新增特性 24
2.3.4 ASP.NET Core 3.0的变化 25
2.3.5 将ASP.NET Core 2.1应用升级
到ASP.NET Core 2.2 26
2.4 设置开发环境 26
2.4.1 安装Visual Studio 26
2.4.2 安装Visual Studio Code 28
2.4.3 .NET Core CLI 29
2.5 创建第 一个 API 项目 30
2.5.1 使用Visual Studio 2017 30
2.5.2 使用Visual Studio Code 36
2.6 本章小结 39
第3章 ASP.NET Core核心特性 40
3.1 启动与宿主 40
3.1.1 应用程序的启动 40
3.1.2 Kestrel 43
3.1.3 Startup类 45
3.2 中间件 46
3.2.1 中间件简介 46
3.2.2 添加中间件 47
3.2.3 自定义中间件 51
3.3 依赖注入 52
3.3.1 依赖注入简介 52
3.3.2 ASP.NET Core中的依赖注入 55
3.4 MVC 57
3.4.1 理解MVC模式 57
3.4.2 路由 58
3.4.3 Controller与Action 64
3.4.4 模型绑定 67
3.4.5 模型验证 70
3.4.6 过滤器 72
3.5 配置 78
3.5.1 访问JSON配置文件 78
3.5.2 访问其他配置源 79
3.5.3 自定义配置源 82
3.5.4 重新加载配置 85
3.5.5 强类型对象 85
3.6 日志 87
3.6.1 ILogger接口 87
3.6.2 ILoggerFactory接口 89
3.6.3 ILoggerProvider接口 90
3.6.4 分组和过滤 91
3.7 错误处理 94
3.7.1 异常处理 94
3.7.2 错误码处理 96
3.8 本章小结 96
第4章 资源操作 98
4.1 项目创建 98
4.1.1 项目简介 98
4.1.2 创建项目 99
4.2 使用内存数据 100
4.2.1 创建内存数据源 100
4.2.2 仓储模式 101
4.2.3 实现仓储模式 102
4.3 创建Controller 104
4.4 获取资源 106
4.4.1 获取集合 106
4.4.2 获取单个资源 106
4.4.3 获取父/子形式的资源 108
4.5 创建资源 110
4.5.1 创建资源简介 110
4.5.2 创建子级资源 113
4.6 删除资源 115
4.6.1 删除单个资源 115
4.6.2 删除父与子 116
4.7 更新资源 117
4.7.1 更新资源简介 117
4.7.2 部分更新 120
4.8 内容协商 123
4.8.1 内容协商简介 123
4.8.2 实现内容协商 125
4.9 本章小结 128
第5章 使用Entity Framework Core 129
5.1 Entity Framework Core 129
5.1.1 Entity Framework Core简介 129
5.1.2 在项目中添加EF Core 130
5.2 使用EF Core 131
5.2.1 EF Core的使用 131
5.2.2 创建实体类 132
5.2.3 创建DbContext类 134
5.2.4 添加迁移与创建数据库 135
5.2.5 添加测试数据 137
5.3 重构仓储类 139
5.3.1 创建通用仓储接口 139
5.3.2 创建其他仓储接口 141
5.4 重构Controller和Action 143
5.4.1 使用AutoMapper 143
5.4.2 重构AuthorController 145
5.4.3 重构BookController 147
5.5 本章小结 151
第6章 高级查询和日志 152
6.1 分页 152
6.1.1 实现分页 152
6.1.2 添加分页元数据 154
6.2 过滤和搜索 158
6.2.1 过滤 158
6.2.2 搜索 160
6.3 排序 161
6.3.1 实现排序 162
6.3.2 属性映射 165
6.4 日志和异常 168
6.4.1 记录日志 168
6.4.2 异常处理 170
6.5 本章小结 172
第7章 高级主题 173
7.1 缓存 173
7.1.1 HTTP缓存 173
7.1.2 响应缓存中间件 177
7.1.3 内存缓存 179
7.1.4 分布式缓存 180
7.2 并发 186
7.2.1 为什么需要并发控制 186
7.2.2 不同的并发处理策略 187
7.2.3 实现并发控制 188
7.3 版本 190
7.3.1 API版本 190
7.3.2 实现API版本 191
7.4 HATEOAS 198
7.4.1 HATEOAS简介 198
7.4.2 实现HATEOAS 201
7.5 GraphQL 207
7.5.1 GraphQL简介 207
7.5.2 与REST相比 208
7.5.3 添加GraphQL服务 209
7.6 本章小结 215
第8章 认证和安全 217
8.1 认证 217
8.1.1 HTTP认证 217
8.1.2 实现基于Token的认证 221
8.2 ASP.NET Core Identity 227
8.2.1 Identity介绍 227
8.2.2 使用Identity 230
8.2.3 授权 235
8.3 HTTPS 239
8.3.1 HTTPS简介 239
8.3.2 HTTPS重定向中间件 241
8.3.3 HSTS中间件 242
8.4 数据保护 244
8.4.1 数据保护API 244
8.4.2 使用数据保护API 245
8.4.3 配置数据保护 249
8.4.4 用户机密 251
8.5 CORS 254
8.5.1 CORS简介 254
8.5.2 实现CORS 256
8.6 限流 259
8.7 本章小结 262
第9章 测试和文档 263
9.1 测试 263
9.1.1 测试简介 263
9.1.2 单元测试 264
9.1.3 集成测试 267
9.2 文档 274
9.2.1 Swagger简介 274
9.2.2 XML注释 276
9.3 本章小结 279
第 10章 部署 280
10.1 部署到IIS 280
10.1.1 发布应用 280
10.1.2 IIS配置 282
10.1.3 HTTPS配置 284
10.2 部署到Docker 286
10.2.1 Docker简介 286
10.2.2 Docker命令 288
10.2.3 Docker实践 290
10.2.4 Docker Compose简介 293
10.2.5 Docker Compose实践 294
10.3 部署到Azure 298
10.3.1 Azure简介 298
10.3.2 创建资源 298
10.3.3 部署到Azure实践 300
10.3.4 持续部署 302
10.4 本章小结 305