-
>
全國計算機等級考試最新真考題庫模擬考場及詳解·二級MSOffice高級應(yīng)用
-
>
決戰(zhàn)行測5000題(言語理解與表達)
-
>
軟件性能測試.分析與調(diào)優(yōu)實踐之路
-
>
第一行代碼Android
-
>
JAVA持續(xù)交付
-
>
EXCEL最強教科書(完全版)(全彩印刷)
-
>
深度學(xué)習(xí)
利用FASTAPI構(gòu)建PYTHON微服務(wù) 版權(quán)信息
- ISBN:9787302644866
- 條形碼:9787302644866 ; 978-7-302-64486-6
- 裝幀:平裝-膠訂
- 冊數(shù):暫無
- 重量:暫無
- 所屬分類:>>
利用FASTAPI構(gòu)建PYTHON微服務(wù) 本書特色
《利用FastAPI構(gòu)建Python微服務(wù)》將向你詳細介紹FastAPI框架及其組件,以及如何聯(lián)合應(yīng)用這些組件與一些第三方工具來構(gòu)建微服務(wù)應(yīng)用程序。讀者需要具備一些Python編程背景、API開發(fā)原理知識以及對創(chuàng)建企業(yè)級微服務(wù)應(yīng)用程序背后原理的理解。這不僅僅是一本參考用書,它還提供一些代碼藍圖,在闡釋和演示各章主題的同時,還可以幫助開發(fā)人員解決實際應(yīng)用問題。
利用FASTAPI構(gòu)建PYTHON微服務(wù) 內(nèi)容簡介
《利用FastAPI構(gòu)建Python微服務(wù)》詳細闡述了與分布式機器學(xué)習(xí)相關(guān)的基本解決方案,主要包括設(shè)置 FastAPI,探索核心功能,依賴注入研究,構(gòu)建微服務(wù)應(yīng)用程序,連接到關(guān)系數(shù)據(jù)庫,使用非關(guān)系數(shù)據(jù)庫,保護REST API的安全,創(chuàng)建協(xié)程、事件和消息驅(qū)動的事務(wù),利用其他高級功能,解決數(shù)值、符號和圖形問題,添加其他微服務(wù)功能等內(nèi)容。此外,本書還提供了相應(yīng)的示例、代碼,以幫助讀者進一步理解相關(guān)方案的實現(xiàn)過程。
利用FASTAPI構(gòu)建PYTHON微服務(wù) 目錄
第1章 設(shè)置FastAPI 3
1.1 技術(shù)要求 3
1.2 設(shè)置開發(fā)環(huán)境 4
1.3 初始化和配置FastAPI 5
1.4 設(shè)計和實現(xiàn)REST API 6
1.5 管理用戶請求和服務(wù)器響應(yīng) 9
1.5.1 參數(shù)類型聲明 9
1.5.2 路徑參數(shù) 10
1.5.3 查詢參數(shù) 12
1.5.4 默認(rèn)參數(shù) 13
1.5.5 可選參數(shù) 14
1.5.6 混合所有類型的參數(shù) 16
1.5.7 請求正文 16
1.5.8 請求標(biāo)頭 19
1.5.9 響應(yīng)數(shù)據(jù) 20
1.6 處理表單參數(shù) 21
1.7 管理cookie 22
1.8 小結(jié) 23
第2章 探索核心功能 25
2.1 技術(shù)要求 25
2.2 構(gòu)建和組織大型項目 26
2.2.1 實現(xiàn)API服務(wù) 27
2.2.2 導(dǎo)入模塊組件 28
2.2.3 實現(xiàn)新的main.py文件 29
2.3 管理與API相關(guān)的異常 30
2.3.1 單個狀態(tài)代碼響應(yīng) 30
2.3.2 多個狀態(tài)代碼 32
2.3.3 引發(fā)HTTPException 33
2.3.4 自定義異常 34
2.3.5 默認(rèn)處理程序覆蓋 36
2.4 將對象轉(zhuǎn)換為與JSON兼容的類型 37
2.5 管理API響應(yīng) 38
2.6 創(chuàng)建后臺進程 40
2.7 使用異步路徑操作 42
2.8 應(yīng)用中間件以過濾路徑操作 43
2.9 小結(jié) 45
第3章 依賴注入研究 47
3.1 技術(shù)要求 47
3.2 應(yīng)用控制反轉(zhuǎn)和依賴注入 48
3.2.1 注入依賴函數(shù) 49
3.2.2 注入可調(diào)用的類 50
3.2.3 構(gòu)建嵌套依賴關(guān)系 51
3.2.4 緩存依賴項 53
3.2.5 聲明Depends()參數(shù)類型 54
3.2.6 注入異步依賴項 55
3.3 探索注入依賴項的方法 55
3.3.1 在服務(wù)參數(shù)列表上發(fā)生的依賴注入 55
3.3.2 在路徑運算符中發(fā)生的依賴注入 56
3.3.3 針對路由器的依賴注入 57
3.3.4 針對main.py的依賴注入 60
3.4 基于依賴關(guān)系組織項目 61
3.4.1 模型層 62
3.4.2 存儲庫層 63
3.4.3 存儲庫工廠方法 65
3.4.4 服務(wù)層 65
3.4.5 REST API和服務(wù)層 66
3.4.6 實際項目結(jié)構(gòu) 67
3.5 使用第三方容器 67
3.5.1 使用可配置容器—Dependency Injector 68
3.5.2 使用Lagom模塊 72
3.5.3 FastAPI和Lagom集成 72
3.6 可依賴項的范圍 73
3.7 小結(jié) 74
第4章 構(gòu)建微服務(wù)應(yīng)用程序 75
4.1 技術(shù)要求 75
4.2 應(yīng)用分解模式 76
4.2.1 按業(yè)務(wù)單元分解 76
4.2.2 創(chuàng)建子應(yīng)用程序 78
4.3 掛載子模塊 79
4.4 創(chuàng)建通用網(wǎng)關(guān) 80
4.5 實現(xiàn)主端點 80
4.6 評估微服務(wù)ID 81
4.7 應(yīng)用異常處理程序 82
4.8 集中日志記錄機制 83
4.8.1 微服務(wù)架構(gòu)可能面臨的日志問題 83
4.8.2 使用Loguru模塊 84
4.9 構(gòu)建日志中間件 85
4.9.1 中間件實現(xiàn)示例 86
4.9.2 使用REST API服務(wù) 88
4.10 使用httpx模塊 88
4.11 使用requests模塊 90
4.12 應(yīng)用領(lǐng)域建模方法 91
4.13 創(chuàng)建層 92
4.14 識別領(lǐng)域模型 92
4.15 構(gòu)建存儲庫層和服務(wù)層 94
4.15.1 存儲庫層模式 94
4.15.2 服務(wù)層模式 96
4.15.3 使用工廠方法模式 97
4.16 管理微服務(wù)的配置細節(jié) 97
4.16.1 將設(shè)置存儲為類屬性 98
4.16.2 在屬性文件中存儲設(shè)置 99
4.17 小結(jié) 101
第2篇 以數(shù)據(jù)為中心的微服務(wù)和專注于通信的微服務(wù)
第5章 連接到關(guān)系數(shù)據(jù)庫 105
5.1 技術(shù)要求 106
5.2 準(zhǔn)備數(shù)據(jù)庫連接 106
5.3 使用SQLAlchemy創(chuàng)建同步CRUD事務(wù) 107
5.3.1 安裝數(shù)據(jù)庫驅(qū)動程序 108
5.3.2 設(shè)置數(shù)據(jù)庫連接 108
5.3.3 初始化會話工廠 109
5.3.4 定義Base類 109
5.3.5 構(gòu)建模型層 110
5.3.6 映射表關(guān)系 111
5.3.7 實現(xiàn)存儲庫層 113
5.3.8 建立CRUD事務(wù) 113
5.3.9 創(chuàng)建連接查詢 116
5.3.10 運行事務(wù) 117
5.3.11 創(chuàng)建表 119
5.4 使用SQLAlchemy實現(xiàn)異步CRUD事務(wù) 120
5.4.1 安裝兼容asyncio的數(shù)據(jù)庫驅(qū)動程序 120
5.4.2 設(shè)置數(shù)據(jù)庫的連接 121
5.4.3 創(chuàng)建會話工廠 121
5.4.4 創(chuàng)建Base類和模型層 122
5.4.5 構(gòu)建存儲庫層 122
5.4.6 運行CRUD事務(wù) 125
5.5 使用GINO實現(xiàn)異步CRUD事務(wù) 126
5.5.1 安裝數(shù)據(jù)庫驅(qū)動程序 127
5.5.2 建立數(shù)據(jù)庫連接 127
5.5.3 構(gòu)建模型層 127
5.5.4 映射表關(guān)系 128
5.5.5 實現(xiàn)CRUD事務(wù) 130
5.5.6 運行CRUD事務(wù) 133
5.5.7 創(chuàng)建表 134
5.6 將Pony ORM用于存儲庫層 135
5.6.1 安裝數(shù)據(jù)庫驅(qū)動程序 135
5.6.2 創(chuàng)建數(shù)據(jù)庫連接 135
5.6.3 定義模型類 135
5.6.4 實現(xiàn)CRUD事務(wù) 138
5.6.5 運行存儲庫事務(wù) 141
5.6.6 創(chuàng)建表 142
5.7 使用Peewee構(gòu)建存儲庫 142
5.7.1 安裝數(shù)據(jù)庫驅(qū)動程序 142
5.7.2 創(chuàng)建數(shù)據(jù)庫連接 142
5.7.3 創(chuàng)建表和領(lǐng)域?qū)?143
5.7.4 實現(xiàn)CRUD事務(wù) 146
5.7.5 運行CRUD事務(wù) 148
5.8 應(yīng)用CQRS設(shè)計模式 148
5.8.1 定義處理程序接口 149
5.8.2 創(chuàng)建命令和查詢類 149
5.8.3 創(chuàng)建命令和查詢處理程序 150
5.8.4 訪問處理程序 151
5.9 小結(jié) 152
第6章 使用非關(guān)系數(shù)據(jù)庫 155
6.1 技術(shù)要求 156
6.2 設(shè)置數(shù)據(jù)庫環(huán)境 156
6.3 應(yīng)用PyMongo驅(qū)動程序進行同步連接 158
6.3.1 設(shè)置數(shù)據(jù)庫連接 159
6.3.2 構(gòu)建模型層 160
6.3.3 建立文檔關(guān)聯(lián) 161
6.3.4 使用BaseModel類 162
6.3.5 使用Pydantic驗證 164
6.3.6 使用Pydantic @dataclass查詢文檔 164
6.3.7 實現(xiàn)存儲庫層 167
6.3.8 構(gòu)建CRUD事務(wù) 167
6.3.9 管理文檔關(guān)聯(lián) 170
6.3.10 運行事務(wù) 171
6.4 使用Motor創(chuàng)建異步CRUD事務(wù) 174
6.4.1 設(shè)置數(shù)據(jù)庫連接 174
6.4.2 創(chuàng)建模型層 175
6.4.3 構(gòu)建異步存儲層 175
6.4.4 運行CRUD事務(wù) 177
6.5 使用MongoEngine實現(xiàn)CRUD事務(wù) 178
6.5.1 建立數(shù)據(jù)庫連接 178
6.5.2 構(gòu)建模型層 179
6.5.3 創(chuàng)建文檔關(guān)聯(lián) 180
6.5.4 應(yīng)用自定義序列化和反序列化 182
6.5.5 實現(xiàn)CRUD事務(wù) 182
6.5.6 管理嵌入文檔 184
6.5.7 運行CRUD事務(wù) 185
6.6 使用Beanie實現(xiàn)異步CRUD事務(wù) 186
6.6.1 創(chuàng)建數(shù)據(jù)庫連接 186
6.6.2 定義模型類 187
6.6.3 創(chuàng)建文檔關(guān)聯(lián) 189
6.6.4 實現(xiàn)CRUD事務(wù) 189
6.6.5 運行存儲庫事務(wù) 191
6.7 使用ODMantic為FastAPI構(gòu)建異步存儲庫 191
6.7.1 創(chuàng)建數(shù)據(jù)庫連接 191
6.7.2 創(chuàng)建模型層 192
6.7.3 建立文檔關(guān)聯(lián) 193
6.7.4 實現(xiàn)CRUD事務(wù) 193
6.7.5 運行CRUD事務(wù) 195
6.8 使用MongoFrames創(chuàng)建CRUD事務(wù) 196
6.8.1 創(chuàng)建數(shù)據(jù)庫連接 196
6.8.2 構(gòu)建模型層 197
6.8.3 創(chuàng)建文檔關(guān)聯(lián) 198
6.8.4 創(chuàng)建存儲庫層 198
6.8.5 應(yīng)用存儲庫層 200
6.9 小結(jié) 201
第7章 保護REST API的安全 203
7.1 技術(shù)要求 204
7.2 實現(xiàn)Basic和Digest身份驗證 204
7.2.1 使用Basic身份驗證 204
7.2.2 應(yīng)用HTTPBasic和HTTPBasicCredentials 204
7.2.3 執(zhí)行登錄事務(wù) 207
7.2.4 使用Digest身份驗證 208
7.2.5 生成哈希憑據(jù) 209
7.2.6 傳遞用戶憑據(jù) 209
7.2.7 使用HTTPDigest和HTTPAuthorizationCredentials 210
7.2.8 執(zhí)行登錄事務(wù) 211
7.3 實現(xiàn)基于密碼的身份驗證 212
7.3.1 安裝python-multipart模塊 212
7.3.2 使用OAuth2PasswordBearer和OAuth2PasswordRequestForm 212
7.3.3 執(zhí)行登錄事務(wù) 213
7.3.4 保護端點的安全 216
7.4 應(yīng)用JWT 217
7.4.1 生成密鑰 217
7.4.2 創(chuàng)建access_token 218
7.4.3 創(chuàng)建登錄事務(wù) 218
7.4.4 訪問安全端點 219
7.5 創(chuàng)建基于作用域的授權(quán) 220
7.5.1 自定義OAuth2類 221
7.5.2 構(gòu)建權(quán)限字典 221
7.5.3 實現(xiàn)登錄事務(wù) 222
7.5.4 將作用域應(yīng)用于端點 223
7.6 構(gòu)建授權(quán)碼流 225
7.6.1 應(yīng)用OAuth2AuthorizationCodeBearer 225
7.6.2 實現(xiàn)授權(quán)請求 226
7.6.3 實現(xiàn)授權(quán)碼響應(yīng) 227
7.7 應(yīng)用OpenID Connect規(guī)范 228
7.7.1 使用HTTPBearer 229
7.7.2 安裝和配置Keycloak環(huán)境 229
7.7.3 設(shè)置Keycloak領(lǐng)域和客戶端 229
7.7.4 創(chuàng)建用戶和用戶角色 231
7.7.5 為客戶端分配角色 232
7.7.6 通過作用域創(chuàng)建用戶權(quán)限 233
7.7.7 將Keycloak與FastAPI集成在一起 234
7.7.8 實現(xiàn)令牌驗證 236
7.7.9 將Auth0與FastAPI集成在一起 237
7.7.10 將Okta與FastAPI集成在一起 239
7.8 使用內(nèi)置中間件進行身份驗證 239
7.9 小結(jié) 240
第8章 創(chuàng)建協(xié)程、事件和消息驅(qū)動的事務(wù) 241
8.1 技術(shù)要求 241
8.2 實現(xiàn)協(xié)程 242
8.2.1 應(yīng)用協(xié)程切換 242
8.2.2 應(yīng)用@asyncio.coroutine 242
8.2.3 使用async/await結(jié)構(gòu) 244
8.2.4 設(shè)計異步事務(wù) 245
8.2.5 使用HTTP/2協(xié)議 248
8.3 創(chuàng)建異步后臺任務(wù) 248
8.3.1 使用協(xié)程 248
8.3.2 創(chuàng)建多個任務(wù) 249
8.4 了解Celery任務(wù) 250
8.4.1 創(chuàng)建和配置Celery實例 251
8.4.2 創(chuàng)建任務(wù) 252
8.4.3 調(diào)用任務(wù) 253
8.4.4 啟動工作服務(wù)器 254
8.4.5 監(jiān)控任務(wù) 255
8.5 使用RabbitMQ構(gòu)建消息驅(qū)動的事務(wù) 256
8.5.1 創(chuàng)建Celery實例 256
8.5.2 監(jiān)控AMQP消息傳遞 256
8.6 使用Kafka構(gòu)建發(fā)布/訂閱消息 257
8.6.1 運行Kafka代理和服務(wù)器 258
8.6.2 創(chuàng)建主題 258
8.6.3 實現(xiàn)發(fā)布者 258
8.6.4 在控制臺上運行使用者 259
8.7 實現(xiàn)異步服務(wù)器發(fā)送事件 260
8.8 構(gòu)建異步WebSocket 262
8.8.1 實現(xiàn)異步WebSocket端點 262
8.8.2 實現(xiàn)WebSocket客戶端 263
8.9 在任務(wù)中應(yīng)用反應(yīng)式編程 264
8.9.1 使用協(xié)程創(chuàng)建Observable數(shù)據(jù) 265
8.9.2 創(chuàng)建后臺進程 267
8.9.3 訪問API資源 268
8.10 自定義事件 270
8.10.1 定義啟動事件 270
8.10.2 定義關(guān)閉事件 270
8.11 小結(jié) 271
第3篇 與基礎(chǔ)設(shè)施相關(guān)的問題、數(shù)字和符號計算、測試微服務(wù)
第9章 利用其他高級功能 275
9.1 技術(shù)要求 275
9.2 應(yīng)用會話管理 276
9.2.1 創(chuàng)建用戶會話 276
9.2.2 管理會話數(shù)據(jù) 278
9.2.3 刪除會話 280
9.2.4 自定義BaseHTTPMiddleware 280
9.3 管理CORS機制 282
9.4 自定義APIRoute和Request 284
9.4.1 管理數(shù)據(jù)正文、表單或JSON數(shù)據(jù) 284
9.4.2 加密和解密消息正文 287
9.5 選擇適當(dāng)?shù)捻憫?yīng) 288
9.5.1 設(shè)置Jinja2模板引擎 292
9.5.2 設(shè)置靜態(tài)資源 292
9.5.3 創(chuàng)建模板布局 292
9.5.4 使用ORJSONResponse和UJSONResponse 294
9.6 應(yīng)用OpenAPI 3.x規(guī)范 295
9.6.1 擴展OpenAPI模式定義 295
9.6.2 使用內(nèi)部代碼庫屬性 298
9.6.3 使用Query、Form、Body和Path函數(shù) 300
9.7 測試API端點 303
9.7.1 編寫單元測試用例 303
9.7.2 模擬依賴項 304
9.7.3 運行測試方法 306
9.8 小結(jié) 307
第10章 解決數(shù)值、符號和圖形問題 309
10.1 技術(shù)要求 309
10.2 設(shè)置項目 310
10.2.1 使用Piccolo ORM 310
10.2.2 創(chuàng)建數(shù)據(jù)模型 312
10.2.3 實現(xiàn)存儲層 313
10.2.4 Beanie ODM 314
10.3 實現(xiàn)符號計算 314
10.3.1 創(chuàng)建符號表達式 314
10.3.2 求解線性表達式 315
10.3.3 求解非線性表達式 316
10.3.4 求解線性和非線性不等式 317
10.4 創(chuàng)建數(shù)組和DataFrame 317
10.4.1 應(yīng)用NumPy的線性系統(tǒng)操作 318
10.4.2 應(yīng)用pandas模塊 319
10.5 執(zhí)行統(tǒng)計分析 320
10.6 生成CSV和XLSX報告 321
10.7 繪制數(shù)據(jù)模型 325
10.8 模擬BPMN工作流 328
10.8.1 設(shè)計BPMN工作流 328
10.8.2 實現(xiàn)工作流 329
10.9 使用GraphQL查詢和突變 331
10.9.1 設(shè)置GraphQL平臺 332
10.9.2 創(chuàng)建記錄的插入、更新和刪除 332
10.9.3 實現(xiàn)查詢事務(wù) 334
10.9.4 運行CRUD事務(wù) 334
10.10 利用Neo4j圖數(shù)據(jù)庫 336
10.10.1 設(shè)置Neo4j數(shù)據(jù)庫 337
10.10.2 創(chuàng)建CRUD事務(wù) 337
10.11 小結(jié) 340
第11章 添加其他微服務(wù)功能 343
11.1 技術(shù)要求 343
11.2 設(shè)置虛擬環(huán)境 344
11.3 檢查API屬性 346
11.4 實現(xiàn)OpenTracing機制 347
11.5 設(shè)置服務(wù)注冊表和客戶端服務(wù)發(fā)現(xiàn) 350
11.5.1 實現(xiàn)客戶端服務(wù)發(fā)現(xiàn) 351
11.5.2 設(shè)置Netflix Eureka服務(wù)注冊表 352
11.6 使用Docker部署和運行應(yīng)用程序 353
11.6.1 生成requirements.txt文件 353
11.6.2 創(chuàng)建Docker鏡像 354
11.6.3 使用Mongo Docker鏡像 355
11.6.4 創(chuàng)建容器 355
11.7 使用Docker Compose進行部署 356
11.8 使用NGINX作為API網(wǎng)關(guān) 357
11.9 集成Flask和Django子應(yīng)用程序 358
11.10 小結(jié) 360
利用FASTAPI構(gòu)建PYTHON微服務(wù) 作者簡介
舍溫·約翰·C.特拉古拉是Java、ASP.NET MVC和Python應(yīng)用程序方面的主題專家,并且還具有一些前端框架背景。他管理著一個開發(fā)團隊來構(gòu)建與制造和固定資產(chǎn)、文檔管理、記錄管理、POS以及庫存系統(tǒng)相關(guān)的各種應(yīng)用程序。作為顧問,他擁有構(gòu)建實驗室信息管理系統(tǒng)(laboratory information management system,LIMS)和混合移動應(yīng)用程序的背景。自2010年以來,他還為Python、Django、Flask、Jakarta EE、C#、ASP.NET MVC、JSF、Java和一些前端框架的課程提供企業(yè)新人培訓(xùn)服務(wù)。他撰寫了Spring MVC Blueprints和Spring 5 Cookbook之類的書籍,另外還發(fā)布了Packt視頻Modern Java Web Applications with Spring Boot 2.x。
- >
經(jīng)典常談
- >
巴金-再思錄
- >
李白與唐代文化
- >
名家?guī)阕x魯迅:故事新編
- >
小考拉的故事-套裝共3冊
- >
中國人在烏蘇里邊疆區(qū):歷史與人類學(xué)概述
- >
回憶愛瑪儂
- >
莉莉和章魚