ASP.NET Core與RESTful API 開發(fā)實(shí)戰(zhàn)
定 價(jià):79 元
- 作者:楊萬青
- 出版時(shí)間:2020/2/1
- ISBN:9787115519511
- 出 版 社:人民郵電出版社
- 中圖法分類:TP393.092.2
- 頁碼:306
- 紙張:
- 版次:01
- 開本:16K
ASP.NET Core是微軟推出的新一代跨平臺(tái)、高性能Web開發(fā)框架,具有模塊化、內(nèi)置依賴項(xiàng)注入、開源、易于部署等特點(diǎn)。作為近些年來主流的軟件架構(gòu)風(fēng)格,REST旨在構(gòu)建簡(jiǎn)單、可靠、高性能、高伸縮性的Web應(yīng)用。
本書系統(tǒng)地介紹了如何使用ASP.NET Core開發(fā)RESTful API應(yīng)用,共包含10章內(nèi)容。前3章主要介紹了REST、HTTP、ASP.NET Core的基礎(chǔ)理論。第4~10章講述如何根據(jù)前3章的理論逐步構(gòu)建規(guī)范的RESTful API應(yīng)用,涉及資源的基本操作、Entity Framework Core、高級(jí)查詢、日志、緩存、并發(fā)、HATEOAS、認(rèn)證與安全、測(cè)試以及部署等內(nèi)容。
(1)理論+實(shí)踐,從零開始帶你學(xué)習(xí).NET Core開發(fā)。
(2)詳細(xì)介紹REST、HTTP、ASP.NET Core的基礎(chǔ)理論。
(3)深入剖析ASP.NET Core提供的重要特性。
(4)全面解讀構(gòu)建規(guī)范的RESTful API應(yīng)用的方方面面。
楊萬青,.NET架構(gòu)師,具有多年軟件開發(fā)經(jīng)驗(yàn),專注于.NET/.NET Core平臺(tái)的應(yīng)用開發(fā)及技術(shù)架構(gòu)研究,對(duì)新技術(shù)有濃厚的興趣。
第 1章 REST簡(jiǎn)介 1
1.1 API與REST 1
1.1.1 什么是API 1
1.1.2 什么是REST 2
1.1.3 REST約束 2
1.1.4 對(duì)REST的錯(cuò)誤理解 4
1.2 HTTP協(xié)議 5
1.2.1 HTTP簡(jiǎn)介 5
1.2.2 統(tǒng)一資源定位符 5
1.2.3 媒體類型 7
1.2.4 HTTP消息 8
1.2.5 HTTP方法 9
1.2.6 HTTP消息頭 10
1.2.7 狀態(tài)碼 12
1.3 REST最佳實(shí)踐 13
1.4 其他問題 14
1.4.1 JSON和XML 14
1.4.2 API版本 16
1.5 本章小結(jié) 16
第 2章 .NET Core和ASP.NET Core 17
2.1 .NET Core簡(jiǎn)介 17
2.2 .NET Standard簡(jiǎn)介 18
2.3 ASP.NET Core簡(jiǎn)介 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應(yīng)用升級(jí)
到ASP.NET Core 2.2 26
2.4 設(shè)置開發(fā)環(huán)境 26
2.4.1 安裝Visual Studio 26
2.4.2 安裝Visual Studio Code 28
2.4.3 .NET Core CLI 29
2.5 創(chuàng)建第 一個(gè) API 項(xiàng)目 30
2.5.1 使用Visual Studio 2017 30
2.5.2 使用Visual Studio Code 36
2.6 本章小結(jié) 39
第3章 ASP.NET Core核心特性 40
3.1 啟動(dòng)與宿主 40
3.1.1 應(yīng)用程序的啟動(dòng) 40
3.1.2 Kestrel 43
3.1.3 Startup類 45
3.2 中間件 46
3.2.1 中間件簡(jiǎn)介 46
3.2.2 添加中間件 47
3.2.3 自定義中間件 51
3.3 依賴注入 52
3.3.1 依賴注入簡(jiǎn)介 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 模型驗(yàn)證 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 強(qiáng)類型對(duì)象 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 錯(cuò)誤處理 94
3.7.1 異常處理 94
3.7.2 錯(cuò)誤碼處理 96
3.8 本章小結(jié) 96
第4章 資源操作 98
4.1 項(xiàng)目創(chuàng)建 98
4.1.1 項(xiàng)目簡(jiǎn)介 98
4.1.2 創(chuàng)建項(xiàng)目 99
4.2 使用內(nèi)存數(shù)據(jù) 100
4.2.1 創(chuàng)建內(nèi)存數(shù)據(jù)源 100
4.2.2 倉(cāng)儲(chǔ)模式 101
4.2.3 實(shí)現(xiàn)倉(cāng)儲(chǔ)模式 102
4.3 創(chuàng)建Controller 104
4.4 獲取資源 106
4.4.1 獲取集合 106
4.4.2 獲取單個(gè)資源 106
4.4.3 獲取父/子形式的資源 108
4.5 創(chuàng)建資源 110
4.5.1 創(chuàng)建資源簡(jiǎn)介 110
4.5.2 創(chuàng)建子級(jí)資源 113
4.6 刪除資源 115
4.6.1 刪除單個(gè)資源 115
4.6.2 刪除父與子 116
4.7 更新資源 117
4.7.1 更新資源簡(jiǎn)介 117
4.7.2 部分更新 120
4.8 內(nèi)容協(xié)商 123
4.8.1 內(nèi)容協(xié)商簡(jiǎn)介 123
4.8.2 實(shí)現(xiàn)內(nèi)容協(xié)商 125
4.9 本章小結(jié) 128
第5章 使用Entity Framework Core 129
5.1 Entity Framework Core 129
5.1.1 Entity Framework Core簡(jiǎn)介 129
5.1.2 在項(xiàng)目中添加EF Core 130
5.2 使用EF Core 131
5.2.1 EF Core的使用 131
5.2.2 創(chuàng)建實(shí)體類 132
5.2.3 創(chuàng)建DbContext類 134
5.2.4 添加遷移與創(chuàng)建數(shù)據(jù)庫(kù) 135
5.2.5 添加測(cè)試數(shù)據(jù) 137
5.3 重構(gòu)倉(cāng)儲(chǔ)類 139
5.3.1 創(chuàng)建通用倉(cāng)儲(chǔ)接口 139
5.3.2 創(chuàng)建其他倉(cāng)儲(chǔ)接口 141
5.4 重構(gòu)Controller和Action 143
5.4.1 使用AutoMapper 143
5.4.2 重構(gòu)AuthorController 145
5.4.3 重構(gòu)BookController 147
5.5 本章小結(jié) 151
第6章 高級(jí)查詢和日志 152
6.1 分頁 152
6.1.1 實(shí)現(xiàn)分頁 152
6.1.2 添加分頁元數(shù)據(jù) 154
6.2 過濾和搜索 158
6.2.1 過濾 158
6.2.2 搜索 160
6.3 排序 161
6.3.1 實(shí)現(xiàn)排序 162
6.3.2 屬性映射 165
6.4 日志和異常 168
6.4.1 記錄日志 168
6.4.2 異常處理 170
6.5 本章小結(jié) 172
第7章 高級(jí)主題 173
7.1 緩存 173
7.1.1 HTTP緩存 173
7.1.2 響應(yīng)緩存中間件 177
7.1.3 內(nèi)存緩存 179
7.1.4 分布式緩存 180
7.2 并發(fā) 186
7.2.1 為什么需要并發(fā)控制 186
7.2.2 不同的并發(fā)處理策略 187
7.2.3 實(shí)現(xiàn)并發(fā)控制 188
7.3 版本 190
7.3.1 API版本 190
7.3.2 實(shí)現(xiàn)API版本 191
7.4 HATEOAS 198
7.4.1 HATEOAS簡(jiǎn)介 198
7.4.2 實(shí)現(xiàn)HATEOAS 201
7.5 GraphQL 207
7.5.1 GraphQL簡(jiǎn)介 207
7.5.2 與REST相比 208
7.5.3 添加GraphQL服務(wù) 209
7.6 本章小結(jié) 215
第8章 認(rèn)證和安全 217
8.1 認(rèn)證 217
8.1.1 HTTP認(rèn)證 217
8.1.2 實(shí)現(xiàn)基于Token的認(rèn)證 221
8.2 ASP.NET Core Identity 227
8.2.1 Identity介紹 227
8.2.2 使用Identity 230
8.2.3 授權(quán) 235
8.3 HTTPS 239
8.3.1 HTTPS簡(jiǎn)介 239
8.3.2 HTTPS重定向中間件 241
8.3.3 HSTS中間件 242
8.4 數(shù)據(jù)保護(hù) 244
8.4.1 數(shù)據(jù)保護(hù)API 244
8.4.2 使用數(shù)據(jù)保護(hù)API 245
8.4.3 配置數(shù)據(jù)保護(hù) 249
8.4.4 用戶機(jī)密 251
8.5 CORS 254
8.5.1 CORS簡(jiǎn)介 254
8.5.2 實(shí)現(xiàn)CORS 256
8.6 限流 259
8.7 本章小結(jié) 262
第9章 測(cè)試和文檔 263
9.1 測(cè)試 263
9.1.1 測(cè)試簡(jiǎn)介 263
9.1.2 單元測(cè)試 264
9.1.3 集成測(cè)試 267
9.2 文檔 274
9.2.1 Swagger簡(jiǎn)介 274
9.2.2 XML注釋 276
9.3 本章小結(jié) 279
第 10章 部署 280
10.1 部署到IIS 280
10.1.1 發(fā)布應(yīng)用 280
10.1.2 IIS配置 282
10.1.3 HTTPS配置 284
10.2 部署到Docker 286
10.2.1 Docker簡(jiǎn)介 286
10.2.2 Docker命令 288
10.2.3 Docker實(shí)踐 290
10.2.4 Docker Compose簡(jiǎn)介 293
10.2.5 Docker Compose實(shí)踐 294
10.3 部署到Azure 298
10.3.1 Azure簡(jiǎn)介 298
10.3.2 創(chuàng)建資源 298
10.3.3 部署到Azure實(shí)踐 300
10.3.4 持續(xù)部署 302
10.4 本章小結(jié) 305