[ 收藏 ] [ 简体中文 ]  
臺灣貨到付款、ATM、超商、信用卡PAYPAL付款,4-7個工作日送達,999元臺幣免運費   在線留言 商品價格為新臺幣 
首頁 電影 連續劇 音樂 圖書 女裝 男裝 童裝 內衣 百貨家居 包包 女鞋 男鞋 童鞋 計算機周邊

商品搜索

 类 别:
 关键字:
    

商品分类

  •  管理

     一般管理学
     市场/营销
     会计
     金融/投资
     经管音像
     电子商务
     创业企业与企业家
     生产与运作管理
     商务沟通
     战略管理
     商业史传
     MBA
     管理信息系统
     工具书
     外文原版/影印版
     管理类职称考试
     WTO
     英文原版书-管理
  •  投资理财

     证券/股票
     投资指南
     理财技巧
     女性理财
     期货
     基金
     黄金投资
     外汇
     彩票
     保险
     购房置业
     纳税
     英文原版书-投资理财
  •  经济

     经济学理论
     经济通俗读物
     中国经济
     国际经济
     各部门经济
     经济史
     财政税收
     区域经济
     统计 审计
     贸易政策
     保险
     经济数学
     各流派经济学说
     经济法
     工具书
     通货膨胀
     财税外贸保险类考试
     英文原版书-经济
  •  社会科学

     语言文字
     社会学
     文化人类学/人口学
     新闻传播出版
     社会科学总论
     图书馆学/档案学
     经典名家作品集
     教育
     英文原版书-社会科学
  •  哲学

     哲学知识读物
     中国古代哲学
     世界哲学
     哲学与人生
     周易
     哲学理论
     伦理学
     哲学史
     美学
     中国近现代哲学
     逻辑学
     儒家
     道家
     思维科学
     马克思主义哲学
     经典作品及研究
     科学哲学
     教育哲学
     语言哲学
     比较哲学
  •  宗教

  •  心理学

  •  古籍

  •  文化

  •  历史

     历史普及读物
     中国史
     世界史
     文物考古
     史家名著
     历史地理
     史料典籍
     历史随笔
     逸闻野史
     地方史志
     史学理论
     民族史
     专业史
     英文原版书-历史
     口述史
  •  传记

  •  文学

  •  艺术

     摄影
     绘画
     小人书/连环画
     书法/篆刻
     艺术设计
     影视/媒体艺术
     音乐
     艺术理论
     收藏/鉴赏
     建筑艺术
     工艺美术
     世界各国艺术概况
     民间艺术
     雕塑
     戏剧艺术/舞台艺术
     艺术舞蹈
     艺术类考试
     人体艺术
     英文原版书-艺术
  •  青春文学

  •  文学

     中国现当代随笔
     文集
     中国古诗词
     外国随笔
     文学理论
     纪实文学
     文学评论与鉴赏
     中国现当代诗歌
     外国诗歌
     名家作品
     民间文学
     戏剧
     中国古代随笔
     文学类考试
     英文原版书-文学
  •  法律

     小说
     世界名著
     作品集
     中国古典小说
     四大名著
     中国当代小说
     外国小说
     科幻小说
     侦探/悬疑/推理
     情感
     魔幻小说
     社会
     武侠
     惊悚/恐怖
     历史
     影视小说
     官场小说
     职场小说
     中国近现代小说
     财经
     军事
  •  童书

  •  成功/励志

  •  政治

  •  军事

  •  科普读物

  •  计算机/网络

     程序设计
     移动开发
     人工智能
     办公软件
     数据库
     操作系统/系统开发
     网络与数据通信
     CAD CAM CAE
     计算机理论
     行业软件及应用
     项目管理 IT人文
     计算机考试认证
     图形处理 图形图像多媒体
     信息安全
     硬件
     项目管理IT人文
     网络与数据通信
     软件工程
     家庭与办公室用书
  •  建筑

  •  医学

     中医
     内科学
     其他临床医学
     外科学
     药学
     医技学
     妇产科学
     临床医学理论
     护理学
     基础医学
     预防医学/卫生学
     儿科学
     医学/药学考试
     医院管理
     其他医学读物
     医学工具书
  •  自然科学

     数学
     生物科学
     物理学
     天文学
     地球科学
     力学
     科技史
     化学
     总论
     自然科学类考试
     英文原版书-自然科学
  •  工业技术

     环境科学
     电子通信
     机械/仪表工业
     汽车与交通运输
     电工技术
     轻工业/手工业
     化学工业
     能源与动力工程
     航空/航天
     水利工程
     金属学与金属工艺
     一般工业技术
     原子能技术
     安全科学
     冶金工业
     矿业工程
     工具书/标准
     石油/天然气工业
     原版书
     武器工业
     英文原版书-工业技
  •  农业/林业

  •  外语

  •  考试

  •  教材

  •  工具书

  •  中小学用书

  •  中小学教科书

  •  动漫/幽默

  •  烹饪/美食

  •  时尚/美妆

  •  旅游/地图

  •  家庭/家居

  •  亲子/家教

  •  两性关系

  •  育儿/早教

     保健/养生
     体育/运动
     手工/DIY
     休闲/爱好
     英文原版书
     港台图书
     研究生
     工学
     公共课
     经济管理
     理学
     农学
     文法类
     医学
  • 利用FastAPI構建Python微服務
    該商品所屬分類:計算機/網絡 -> 程序設計
    【市場價】
    1424-2064
    【優惠價】
    890-1290
    【作者】 美舍溫·約翰·C特拉古拉 
    【所屬類別】 圖書  計算機/網絡  程序設計  其他 
    【出版社】清華大學出版社 
    【ISBN】9787302644866
    【折扣說明】一次購物滿999元台幣免運費+贈品
    一次購物滿2000元台幣95折+免運費+贈品
    一次購物滿3000元台幣92折+免運費+贈品
    一次購物滿4000元台幣88折+免運費+贈品
    【本期贈品】①優質無紡布環保袋,做工棒!②品牌簽字筆 ③品牌手帕紙巾
    版本正版全新電子版PDF檔
    您已选择: 正版全新
    溫馨提示:如果有多種選項,請先選擇再點擊加入購物車。
    *. 電子圖書價格是0.69折,例如了得網價格是100元,電子書pdf的價格則是69元。
    *. 購買電子書不支持貨到付款,購買時選擇atm或者超商、PayPal付款。付款後1-24小時內通過郵件傳輸給您。
    *. 如果收到的電子書不滿意,可以聯絡我們退款。謝謝。
    內容介紹



    開本:16開
    紙張:膠版紙
    包裝:平裝-膠訂

    是否套裝:否
    國際標準書號ISBN:9787302644866
    作者:[美]舍溫·約翰·C.特拉古拉

    出版社:清華大學出版社
    出版時間:2023年09月 

        
        
    "

    產品特色

    編輯推薦

    《利用FastAPI構建Python微服務》將向你詳細介紹FastAPI框架及其組件,以及如何聯合應用這些組件與一些第三方工具來構建微服務應用程序。讀者需要具備一些Python編程背景、API開發原理知識以及對創建企業級微服務應用程序背後原理的理解。這不僅僅是一本參考用書,它還提供一些代碼藍圖,在闡釋和演示各章主題的同時,還可以幫助開發人員解決實際應用問題。

     
    內容簡介

    《利用FastAPI構建Python微服務》詳細闡述了與分布式機器學習相關的基本解決方案,主要包括設置 FastAPI,探索核心功能,依賴注入研究,構建微服務應用程序,連接到關繫數據庫,使用非關繫數據庫,保護REST API的安全,創建協程、事件和消息驅動的事務,利用其他高級功能,解決數值、符號和圖形問題,添加其他微服務功能等內容。此外,本書還提供了相應的示例、代碼,以幫助讀者進一步理解相關方案的實現過程。

    作者簡介

    舍溫·約翰·C.特拉古拉是Java、ASP.NET MVC和Python應用程序方面的主題專家,並且還具有一些前端框架背景。他管理著一個開發團隊來構建與制造和固定資產、文檔管理、記錄管理、POS以及庫存繫統相關的各種應用程序。作為顧問,他擁有構建實驗室信息管理繫統(laboratory information management system,LIMS)和混合移動應用程序的背景。自2010年以來,他還為Python、Django、Flask、Jakarta EE、C#、ASP.NET MVC、JSF、Java和一些前端框架的課程提供企業新人培訓服務。他撰寫了Spring MVC Blueprints和Spring 5 Cookbook之類的書籍,另外還發布了Packt視頻Modern Java Web Applications with Spring Boot 2.x。

    目錄
    第1篇 與FastAPI微服務開發應用相關的架構概念
    第1章 設置FastAPI 3
    1.1 技術要求 3
    1.2 設置開發環境 4
    1.3 初始化和配置FastAPI 5
    1.4 設計和實現REST API 6
    1.5 管理用戶請求和服務器響應 9
    1.5.1 參數類型聲明 9
    1.5.2 路徑參數 10
    1.5.3 查詢參數 12
    1.5.4 默認參數 13
    1.5.5 可選參數 14
    1.5.6 混合所有類型的參數 16
    1.5.7 請求正文 16

    第1篇  與FastAPI微服務開發應用相關的架構概念
    第1章  設置FastAPI 3
    1.1  技術要求 3
    1.2  設置開發環境 4
    1.3  初始化和配置FastAPI 5
    1.4  設計和實現REST API 6
    1.5  管理用戶請求和服務器響應 9
    1.5.1  參數類型聲明 9
    1.5.2  路徑參數 10
    1.5.3  查詢參數 12
    1.5.4  默認參數 13
    1.5.5  可選參數 14
    1.5.6  混合所有類型的參數 16
    1.5.7  請求正文 16
    1.5.8  請求標頭 19
    1.5.9  響應數據 20
    1.6  處理表單參數 21
    1.7  管理cookie 22
    1.8  小結 23
    第2章  探索核心功能 25
    2.1  技術要求 25
    2.2  構建和組織大型項目 26
    2.2.1  實現API服務 27
    2.2.2  導入模塊組件 28
    2.2.3  實現新的main.py文件 29
    2.3  管理與API相關的異常 30
    2.3.1  單個狀態代碼響應 30
    2.3.2  多個狀態代碼 32
    2.3.3  引發HTTPException 33
    2.3.4  自定義異常 34
    2.3.5  默認處理程序覆蓋 36
    2.4  將對像轉換為與JSON兼容的類型 37
    2.5  管理API響應 38
    2.6  創建後臺進程 40
    2.7  使用異步路徑操作 42
    2.8  應用中間件以過濾路徑操作 43
    2.9  小結 45
    第3章  依賴注入研究 47
    3.1  技術要求 47
    3.2  應用控制反轉和依賴注入 48
    3.2.1  注入依賴函數 49
    3.2.2  注入可調用的類 50
    3.2.3  構建嵌套依賴關繫 51
    3.2.4  緩存依賴項 53
    3.2.5  聲明Depends()參數類型 54
    3.2.6  注入異步依賴項 55
    3.3  探索注入依賴項的方法 55
    3.3.1  在服務參數列表上發生的依賴注入 55
    3.3.2  在路徑運算符中發生的依賴注入 56
    3.3.3  針對路由器的依賴注入 57
    3.3.4  針對main.py的依賴注入 60
    3.4  基於依賴關繫組織項目 61
    3.4.1  模型層 62
    3.4.2  存儲庫層 63
    3.4.3  存儲庫工廠方法 65
    3.4.4  服務層 65
    3.4.5  REST API和服務層 66
    3.4.6  實際項目結構 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  小結 74
    第4章  構建微服務應用程序 75
    4.1  技術要求 75
    4.2  應用分解模式 76
    4.2.1  按分解 76
    4.2.2  創建子應用程序 78
    4.3  掛載子模塊 79
    4.4  創建通用網關 80
    4.5  實現主端點 80
    4.6  評估微服務ID 81
    4.7  應用異常處理程序 82
    4.8  集中日志記錄機制 83
    4.8.1  微服務架構可能面臨的日志問題 83
    4.8.2  使用Loguru模塊 84
    4.9  構建日志中間件 85
    4.9.1  中間件實現示例 86
    4.9.2  使用REST API服務 88
    4.10  使用httpx模塊 88
    4.11  使用requests模塊 90
    4.12  應用領域建模方法 91
    4.13  創建層 92
    4.14  識別領域模型 92
    4.15  構建存儲庫層和服務層 94
    4.15.1  存儲庫層模式 94
    4.15.2  服務層模式 96
    4.15.3  使用工廠方法模式 97
    4.16  管理微服務的配置細節 97
    4.16.1  將設置存儲為類屬性 98
    4.16.2  在屬性文件中存儲設置 99
    4.17  小結 101
    第2篇  以數據為中心的微服務和專注於通信的微服務
    第5章  連接到關繫數據庫 105
    5.1  技術要求 106
    5.2  準備數據庫連接 106
    5.3  使用SQLAlchemy創建同步CRUD事務 107
    5.3.1  安裝數據庫驅動程序 108
    5.3.2  設置數據庫連接 108
    5.3.3  初始化會話工廠 109
    5.3.4  定義Base類 109
    5.3.5  構建模型層 110
    5.3.6  映射表關繫 111
    5.3.7  實現存儲庫層 113
    5.3.8  建立CRUD事務 113
    5.3.9  創建連接查詢 116
    5.3.10  運行事務 117
    5.3.11  創建表 119
    5.4  使用SQLAlchemy實現異步CRUD事務 120
    5.4.1  安裝兼容asyncio的數據庫驅動程序 120
    5.4.2  設置數據庫的連接 121
    5.4.3  創建會話工廠 121
    5.4.4  創建Base類和模型層 122
    5.4.5  構建存儲庫層 122
    5.4.6  運行CRUD事務 125
    5.5  使用GINO實現異步CRUD事務 126
    5.5.1  安裝數據庫驅動程序 127
    5.5.2  建立數據庫連接 127
    5.5.3  構建模型層 127
    5.5.4  映射表關繫 128
    5.5.5  實現CRUD事務 130
    5.5.6  運行CRUD事務 133
    5.5.7  創建表 134
    5.6  將Pony ORM用於存儲庫層 135
    5.6.1  安裝數據庫驅動程序 135
    5.6.2  創建數據庫連接 135
    5.6.3  定義模型類 135
    5.6.4  實現CRUD事務 138
    5.6.5  運行存儲庫事務 141
    5.6.6  創建表 142
    5.7  使用Peewee構建存儲庫 142
    5.7.1  安裝數據庫驅動程序 142
    5.7.2  創建數據庫連接 142
    5.7.3  創建表和領域層 143
    5.7.4  實現CRUD事務 146
    5.7.5  運行CRUD事務 148
    5.8  應用CQRS設計模式 148
    5.8.1  定義處理程序接口 149
    5.8.2  創建命令和查詢類 149
    5.8.3  創建命令和查詢處理程序 150
    5.8.4  訪問處理程序 151
    5.9  小結 152
    第6章  使用非關繫數據庫 155
    6.1  技術要求 156
    6.2  設置數據庫環境 156
    6.3  應用PyMongo驅動程序進行同步連接 158
    6.3.1  設置數據庫連接 159
    6.3.2  構建模型層 160
    6.3.3  建立文檔關聯 161
    6.3.4  使用BaseModel類 162
    6.3.5  使用Pydantic驗證 164
    6.3.6  使用Pydantic @dataclass查詢文檔 164
    6.3.7  實現存儲庫層 167
    6.3.8  構建CRUD事務 167
    6.3.9  管理文檔關聯 170
    6.3.10  運行事務 171
    6.4  使用Motor創建異步CRUD事務 174
    6.4.1  設置數據庫連接 174
    6.4.2  創建模型層 175
    6.4.3  構建異步存儲層 175
    6.4.4  運行CRUD事務 177
    6.5  使用MongoEngine實現CRUD事務 178
    6.5.1  建立數據庫連接 178
    6.5.2  構建模型層 179
    6.5.3  創建文檔關聯 180
    6.5.4  應用自定義序列化和反序列化 182
    6.5.5  實現CRUD事務 182
    6.5.6  管理嵌入文檔 184
    6.5.7  運行CRUD事務 185
    6.6  使用Beanie實現異步CRUD事務 186
    6.6.1  創建數據庫連接 186
    6.6.2  定義模型類 187
    6.6.3  創建文檔關聯 189
    6.6.4  實現CRUD事務 189
    6.6.5  運行存儲庫事務 191
    6.7  使用ODMantic為FastAPI構建異步存儲庫 191
    6.7.1  創建數據庫連接 191
    6.7.2  創建模型層 192
    6.7.3  建立文檔關聯 193
    6.7.4  實現CRUD事務 193
    6.7.5  運行CRUD事務 195
    6.8  使用MongoFrames創建CRUD事務 196
    6.8.1  創建數據庫連接 196
    6.8.2  構建模型層 197
    6.8.3  創建文檔關聯 198
    6.8.4  創建存儲庫層 198
    6.8.5  應用存儲庫層 200
    6.9  小結 201
    第7章  保護REST API的安全 203
    7.1  技術要求 204
    7.2  實現Basic和Digest身份驗證 204
    7.2.1  使用Basic身份驗證 204
    7.2.2  應用HTTPBasic和HTTPBasicCredentials 204
    7.2.3  執行登錄事務 207
    7.2.4  使用Digest身份驗證 208
    7.2.5  生成哈希憑據 209
    7.2.6  傳遞用戶憑據 209
    7.2.7  使用HTTPDigest和HTTPAuthorizationCredentials 210
    7.2.8  執行登錄事務 211
    7.3  實現基於密碼的身份驗證 212
    7.3.1  安裝python-multipart模塊 212
    7.3.2  使用OAuth2PasswordBearer和OAuth2PasswordRequestForm 212
    7.3.3  執行登錄事務 213
    7.3.4  保護端點的安全 216
    7.4  應用JWT 217
    7.4.1  生成密鑰 217
    7.4.2  創建access_token 218
    7.4.3  創建登錄事務 218
    7.4.4  訪問安全端點 219
    7.5  創建基於作用域的授權 220
    7.5.1  自定義OAuth2類 221
    7.5.2  構建權限字典 221
    7.5.3  實現登錄事務 222
    7.5.4  將作用域應用於端點 223
    7.6  構建授權碼流 225
    7.6.1  應用OAuth2AuthorizationCodeBearer 225
    7.6.2  實現授權請求 226
    7.6.3  實現授權碼響應 227
    7.7  應用OpenID Connect規範 228
    7.7.1  使用HTTPBearer 229
    7.7.2  安裝和配置Keycloak環境 229
    7.7.3  設置Keycloak領域和客戶端 229
    7.7.4  創建用戶和用戶角色 231
    7.7.5  為客戶端分配角色 232
    7.7.6  通過作用域創建用戶權限 233
    7.7.7  將Keycloak與FastAPI集成在一起 234
    7.7.8  實現令牌驗證 236
    7.7.9  將Auth0與FastAPI集成在一起 237
    7.7.10  將Okta與FastAPI集成在一起 239
    7.8  使用內置中間件進行身份驗證 239
    7.9  小結 240
    第8章  創建協程、事件和消息驅動的事務 241
    8.1  技術要求 241
    8.2  實現協程 242
    8.2.1  應用協程切換 242
    8.2.2  應用@asyncio.coroutine 242
    8.2.3  使用async/await結構 244
    8.2.4  設計異步事務 245
    8.2.5  使用HTTP/2協議 248
    8.3  創建異步後臺任務 248
    8.3.1  使用協程 248
    8.3.2  創建多個任務 249
    8.4  了解Celery任務 250
    8.4.1  創建和配置Celery實例 251
    8.4.2  創建任務 252
    8.4.3  調用任務 253
    8.4.4  啟動工作服務器 254
    8.4.5  監控任務 255
    8.5  使用RabbitMQ構建消息驅動的事務 256
    8.5.1  創建Celery實例 256
    8.5.2  監控AMQP消息傳遞 256
    8.6  使用Kafka構建發布/訂閱消息 257
    8.6.1  運行Kafka代理和服務器 258
    8.6.2  創建主題 258
    8.6.3  實現發布者 258
    8.6.4  在控制臺上運行使用者 259
    8.7  實現異步服務器發送事件 260
    8.8  構建異步WebSocket 262
    8.8.1  實現異步WebSocket端點 262
    8.8.2  實現WebSocket客戶端 263
    8.9  在任務中應用反應式編程 264
    8.9.1  使用協程創建Observable數據 265
    8.9.2  創建後臺進程 267
    8.9.3  訪問API資源 268
    8.10  自定義事件 270
    8.10.1  定義啟動事件 270
    8.10.2  定義關閉事件 270
    8.11  小結 271
    第3篇  與基礎設施相關的問題、數字和符號計算、測試微服務
    第9章  利用其他高級功能 275
    9.1  技術要求 275
    9.2  應用會話管理 276
    9.2.1  創建用戶會話 276
    9.2.2  管理會話數據 278
    9.2.3  刪除會話 280
    9.2.4  自定義BaseHTTPMiddleware 280
    9.3  管理CORS機制 282
    9.4  自定義APIRoute和Request 284
    9.4.1  管理數據正文、表單或JSON數據 284
    9.4.2  加密和解密消息正文 287
    9.5  選擇適當的響應 288
    9.5.1  設置Jinja2模板引擎 292
    9.5.2  設置靜態資源 292
    9.5.3  創建模板布局 292
    9.5.4  使用ORJSONResponse和UJSONResponse 294
    9.6  應用OpenAPI 3.x規範 295
    9.6.1  擴展OpenAPI模式定義 295
    9.6.2  使用內部代碼庫屬性 298
    9.6.3  使用Query、Form、Body和Path函數 300
    9.7  測試API端點 303
    9.7.1  測試用例 303
    9.7.2  模擬依賴項 304
    9.7.3  運行測試方法 306
    9.8  小結 307
    第10章  解決數值、符號和圖形問題 309
    10.1  技術要求 309
    10.2  設置項目 310
    10.2.1  使用Piccolo ORM 310
    10.2.2  創建數據模型 312
    10.2.3  實現存儲層 313
    10.2.4  Beanie ODM 314
    10.3  實現符號計算 314
    10.3.1  創建符號表達式 314
    10.3.2  求解線性表達式 315
    10.3.3  求解非線性表達式 316
    10.3.4  求解線性和非線性不等式 317
    10.4  創建數組和DataFrame 317
    10.4.1  應用NumPy的線性繫統操作 318
    10.4.2  應用pandas模塊 319
    10.5  執行統計分析 320
    10.6  生成CSV和XLSX報告 321
    10.7  繪制數據模型 325
    10.8  模擬BPMN工作流 328
    10.8.1  設計BPMN工作流 328
    10.8.2  實現工作流 329
    10.9  使用GraphQL查詢和突變 331
    10.9.1  設置GraphQL平臺 332
    10.9.2  創建記錄的插入、更新和刪除 332
    10.9.3  實現查詢事務 334
    10.9.4  運行CRUD事務 334
    10.10  利用Neo4j圖數據庫 336
    10.10.1  設置Neo4j數據庫 337
    10.10.2  創建CRUD事務 337
    10.11  小結 340
    第11章  添加其他微服務功能 343
    11.1  技術要求 343
    11.2  設置虛擬環境 344
    11.3  檢查API屬性 346
    11.4  實現OpenTracing機制 347
    11.5  設置服務注冊表和客戶端服務發現 350
    11.5.1  實現客戶端服務發現 351
    11.5.2  設置Netflix Eureka服務注冊表 352
    11.6  使用Docker部署和運行應用程序 353
    11.6.1  生成requirements.txt文件 353
    11.6.2  創建Docker鏡像 354
    11.6.3  使用Mongo Docker鏡像 355
    11.6.4  創建容器 355
    11.7  使用Docker Compose進行部署 356
    11.8  使用NGINX作為API網關 357
    11.9  集成Flask和Django子應用程序 358
    11.10  小結 360

    前言
    本書將向你詳細介紹FastAPI框架及其組件,以及如何聯合應用這些組件與一些第三方工具來構建微服務應用程序。讀者需要具備一些Python編程背景、API開發原理知識以及對創建企業級微服務應用程序背後原理的理解。這不僅僅是一本參考用書,它還提供一些代碼藍圖,在闡釋和演示各章主題的同時,還可以幫助開發人員解決實際應用問題。
    本書讀者
    本書適用於想要學習如何使用FastAPI框架來實現微服務的Python Web開發人員、高級Python用戶和使用Flask或Django的後端開發人員。熟悉REST API和微服務的讀者也可以從本書中受益。本書的某些章節包含中級開發人員和Python愛好者也可以涉獵的一般概念、過程和說明。
    內容介紹
    本書分為3篇,共11章。具體內容安排如下。
    第1篇為“與FastAPI微服務開發應用相關的架構概念”,包括第1~4章。
    第1章“設置FastAPI”,介紹如何使用核心模塊類和裝飾器創建FastAPI端點,以及如何通過FastAPI框架管理傳入的API請求和傳出的響應。
    本書將向你詳細介紹FastAPI框架及其組件,以及如何聯合應用這些組件與一些第三方工具來構建微服務應用程序。讀者需要具備一些Python編程背景、API開發原理知識以及對創建企業級微服務應用程序背後原理的理解。這不僅僅是一本參考用書,它還提供一些代碼藍圖,在闡釋和演示各章主題的同時,還可以幫助開發人員解決實際應用問題。

    本書讀者

    本書適用於想要學習如何使用FastAPI框架來實現微服務的Python Web開發人員、高級Python用戶和使用Flask或Django的後端開發人員。熟悉REST API和微服務的讀者也可以從本書中受益。本書的某些章節包含中級開發人員和Python愛好者也可以涉獵的一般概念、過程和說明。

    內容介紹

    本書分為3篇,共11章。具體內容安排如下。

    第1篇為“與FastAPI微服務開發應用相關的架構概念”,包括第1~4章。

    第1章“設置FastAPI”,介紹如何使用核心模塊類和裝飾器創建FastAPI端點,以及如何通過FastAPI框架管理傳入的API請求和傳出的響應。

    第2章“探索核心功能”,詳細闡釋FastAPI的異步端點、異常處理機制、後臺進程、用於項目組織的APIRouter、內置JSON編碼器和FastAPI的  JSON響應等。

    第3章“依賴注入研究”,深入探討FastAPI使用其Depends()指令和第三方擴展模塊管理實例和項目結構的依賴注入(dependency injection,DI)模式。

    第4章“構建微服務應用程序”,介紹支持微服務構建的原則和設計模式,例如分解、屬性配置、日志記錄和領域建模策略等。

    第2篇為“以數據為中心的微服務和專注於通信的微服務”,包括第5~8章。

    第5章“連接到關繫數據庫”,重點介紹Python對像關繫映射器(object relational mapper,ORM)。它可以與FastAPI無縫集成,以使用PostgreSQL數據庫來持久化和管理數據。

    第6章“使用非關繫數據庫”,介紹一些流行的Python對像文檔映射器  (object document mapper,ODM),它們可以將FastAPI應用程序連接到MongoDB服務器上。包括PyMongo、Motor、MongoEngine、Beanie、ODMantic和MongoFrames等。

    第7章“保護REST API的安全”,重點介紹FastAPI的內置安全模塊類,並探討一些第三方工具,例如JWT、Keycloak、Okta和Auth0,以及如何應用它們來實現不同的安全方案以保護應用程序。

    第8章“創建協程、事件和消息驅動的事務”,詳細闡釋FastAPI在異步編程方面的細節,演示協程的使用、asyncio環境、使用Celery的異步後臺進程、使用RabbitMQ和Apache Kafka的異步消息傳遞、異步服務器發送事件(serrer-sent event,SSE)、WebSocket和異步事件等。

    第3篇為“與基礎設施相關的問題、數字和符號計算、測試微服務”,包括第     9~11章。

    第9章“利用其他高級功能”,討論FastAPI可以提供的其他功能,例如它對不同響應類型的支持,中間件、請求和響應的自定義,其他JSON編碼器的應用以及繞過跨域資源共享(cross-origin resource sharing,CORS)的瀏覽器策略。

    第10章“解決數值、符號和圖形問題”,重點介紹FastAPI與numpy、pandas、matplotlib、sympy和scipy模塊的集成,來實現可以執行數值和符號計算以解決數學和統計問題的API服務。

    第11章“添加其他微服務功能”,討論其他架構問題,例如在運行時監控和檢查API端點的屬性、實現OpenTracing機制、設置服務注冊表和客戶端服務發現、使用Docker部署和運行應用程序、使用NGINX作為API網關以及集成Flask和Django子應用程序等。

    充分利用本書

    讀者學習本書內容需要一些使用Python 3.8或3.9進行Python編程的經驗,以及使用任何Python框架的一些API開發經驗。為充分理解和掌握本書內容,讀者還需要了解有關Python編碼的標準和最佳實踐,包括一些高級主題,例如創建裝飾器、生成器、數據庫連接、請求-響應事務、HTTP狀態代碼和API端點等。

    本書涵蓋的軟硬件和操作繫統需求如表P.1所示。

    表P.1  本書涵蓋的軟硬件和操作繫統需求

    本書涵蓋的軟硬件 操作繫統需求

    Python 3.8/3.9 Windows、macOS或Linux

    VS Code編輯器 任何操作繫統的最新版本

    PostgreSQL 13.x 任何操作繫統的64位版本

    MongoDB 5.x 任何操作繫統的64位版本

    Mongo Compass 任何操作繫統的64位版本

    Mongo Database Tools 任何操作繫統的64位版本

    RabbitMQ 任何操作繫統的最新版本

    Apache Kafka 任何操作繫統的最新版本

    Spring STS 最新版本和配置為使用Java 12 JDK

    Docker Engine 任何操作繫統的最新版本

    Jaeger 任何操作繫統的最新版本

    Keycloak 使用Java 12 JDK的版本

    Bootstrap 4.x

    OpenSSL 任何操作繫統的64位版本

    Google Chrome

    此外,還需要在Okta和Auth0中為OpenID連接安全方案開設一個賬戶。兩者都喜歡使用公司電子郵件進行注冊。

    建議讀者自己輸入代碼或從本書的GitHub存儲庫中訪問代碼(下一節提供鏈接地址)。這樣做將幫助你避免復制和粘貼代碼可能帶來的潛在錯誤。

    本書每章都有一個專門的項目原型,用於描述和解釋主題。如果在安裝過程中出現問題,則每個項目都有一個備份數據庫(.sql或.zip)和一個模塊列表(requirements.txt)來解決問題。運行\\i PostgreSQL命令即可安裝腳本文件或使用已安裝的Mongo Database Tools中的mongorestore來加載所有數據庫內容。此外,每個項目都有一個很小的自述文件,對原型想要完成的內容進行一般性描述。

    下載示例代碼文件

    本書隨附的代碼可以在GitHub存儲庫中找到,其網址如下:

    https://github.com/PacktPublishing/Building-Python-Microservices-with-FastAPI

     

    如果代碼有更新,那麼它將在該GitHub存儲庫中被更新。

    下載彩色圖像

    我們還提供了一個PDF文件,其中包含本書使用的屏幕截圖/圖表的彩色圖像。你可以通過以下地址進行下載:

     

    https://packt.link/ohTNw

    本書約定

    本書中使用了許多文本約定。

    (1)有關代碼塊的設置如下:

     

    @app.delete("/ch01/login/remove/{username}")

    def delete_user(username: str):

        del valid_users[username]

        return {"message": "deleted user"}

     

    (2)對於想要強調和突出的代碼,將以粗體形式進行顯示:

     

    @app.get("/ch01/login/")

    def login(username: str, password: str): 

        if valid_users.get(username) == None:

            return {"message": "user does not exist"}

        else:

            user = valid_users.get(username)

     

    (3)任何命令行的輸入或輸出都采用如下所示的粗體代碼形式:

     

    pip install fastapi

    pip install uvicorn[standard]

     

    (4)術語或重要單詞采用中英文對照形式給出,在括號內保留其英文原文。示例如下:

     

    反應式編程(reactive programming)是一種面向數據流和變化傳播的編程範式,它涉及流(stream)的生成,這些流經過一繫列操作來傳播過程中的一些變化。Python有一個RxPY庫,它提供了若干種方法,開發人員可以將這些方法異步應用於這些流,以根據訂閱者的需要提取終端結果。

     

    (5)對於界面詞彙或專有名詞將保留其英文原文,在括號內添加其中文譯文。示例如下:

     

    在輸入Username(用戶名)和Password(密碼)後,單擊登錄表單上的Sign in(登錄)按鈕以檢查你的憑據是否在數據庫中。如果不在,則該應用程序會有/ch07/signup/add和 /ch07/approve/signup來添加你要測試的用戶憑據。

     

    (6)本書還使用了以下兩個圖標:

     表示警告或重要的注意事項。

     表示提示信息或操作技巧。

     

















     
    網友評論  我們期待著您對此商品發表評論
     
    相關商品
    在線留言 商品價格為新臺幣
    關於我們 送貨時間 安全付款 會員登入 加入會員 我的帳戶 網站聯盟
    DVD 連續劇 Copyright © 2024, Digital 了得網 Co., Ltd.
    返回頂部