注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)圖形圖像、多媒體、網(wǎng)頁(yè)制作Rust Web開(kāi)發(fā)

Rust Web開(kāi)發(fā)

Rust Web開(kāi)發(fā)

定 價(jià):¥98.00

作 者: 巴斯蒂安·格魯伯(Bastian Gruber) 著
出版社: 清華大學(xué)出版社
叢編項(xiàng):
標(biāo) 簽: 暫缺

購(gòu)買(mǎi)這本書(shū)可以去


ISBN: 9787302658238 出版時(shí)間: 2024-04-01 包裝: 平裝-膠訂
開(kāi)本: 16開(kāi) 頁(yè)數(shù): 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  主要內(nèi)容● 在異步環(huán)境中處理借用檢查器● 創(chuàng)建Web API并處理JSON● 組建一個(gè)用于Rust異步開(kāi)發(fā)的技術(shù)棧● 優(yōu)雅地處理錯(cuò)誤● 測(cè)試、追蹤、記錄和調(diào)試● 在多個(gè)環(huán)境中部署Rust應(yīng)用

作者簡(jiǎn)介

  巴斯蒂安·格魯伯(Bastian Gruber)是Centrifuge的協(xié)議工程師。他曾經(jīng)是Rust官方異步工作組的一員,并創(chuàng)建了Rust and Tell Berlin MeetUp小組。

圖書(shū)目錄

第Ⅰ部分  Rust介紹
第1章  為什么使用Rust 3
1.1  開(kāi)箱即用:Rust提供的工具 4
1.2  Rust編譯器 8
1.3  Rust用于Web服務(wù) 10
1.4  Rust應(yīng)用程序的可維護(hù)性 15
1.5  本章小結(jié) 15
第2章  建立基礎(chǔ) 17
2.1  遵循Rust規(guī)范 18
2.1.1  使用結(jié)構(gòu)體對(duì)資源進(jìn)行建模 19
2.1.2  理解Option 21
2.1.3  使用文檔解決錯(cuò)誤 22
2.1.4  在Rust中處理字符串 27
2.1.5  深入理解移動(dòng)、借用和所有權(quán) 28
2.1.6  使用和實(shí)現(xiàn)trait 31
2.1.7  處理結(jié)果 39
2.2  創(chuàng)建Web服務(wù)器 40
2.2.1  同時(shí)處理多個(gè)請(qǐng)求 41
2.2.2  Rust的異步環(huán)境 42
2.2.3  Rust處理async/await 43
2.2.4  使用Rust Future類(lèi)型 44
2.2.5  選擇運(yùn)行時(shí) 45
2.2.6  選擇Web框架 46
2.3  本章小結(jié) 49
第Ⅱ部分  開(kāi)始
第3章  創(chuàng)建第一個(gè)路由函數(shù) 53
3.1  認(rèn)識(shí)Web框架:Warp 54
3.1.1  Warp包括哪些內(nèi)容 54
3.1.2  Warp的過(guò)濾器系統(tǒng) 55
3.2  獲取第一個(gè)JSON響應(yīng) 56
3.2.1  與你的框架理念保持一致 57
3.2.2  處理正確的路由 58
3.2.3  使用Serde庫(kù) 59
3.2.4  優(yōu)雅地處理錯(cuò)誤 61
3.3  處理CORS頭信息 65
3.3.1  在應(yīng)用層面返回CORS頭信息 66
3.3.2  測(cè)試CORS響應(yīng) 67
3.4  本章小結(jié) 70
第4章  實(shí)現(xiàn)具象狀態(tài)傳輸API 73
4.1  從內(nèi)存中獲取問(wèn)題 74
4.1.1  設(shè)置一個(gè)模擬數(shù)據(jù)庫(kù) 75
4.1.2  準(zhǔn)備一組測(cè)試數(shù)據(jù) 78
4.1.3  從模擬數(shù)據(jù)庫(kù)中讀取 80
4.1.4  解析查詢(xún)參數(shù) 84
4.1.5  返回自定義錯(cuò)誤 88
4.2  創(chuàng)建、更新和刪除問(wèn)題 92
4.2.1  在線(xiàn)程安全的情況下更新數(shù)據(jù) 92
4.2.2  添加一個(gè)問(wèn)題 96
4.2.3  更新問(wèn)題 98
4.2.4  處理錯(cuò)誤的請(qǐng)求 100
4.2.5  從存儲(chǔ)中刪除問(wèn)題 101
4.3  通過(guò)url表單創(chuàng)建問(wèn)題 103
4.3.1  url表單和JSON的區(qū)別 104
4.3.2  通過(guò)url表單添加答案 104
4.4  本章小結(jié) 107
第5章  清理代碼庫(kù) 109
5.1  將代碼模塊化 109
5.1.1  使用Rust的內(nèi)置模塊系統(tǒng) 110
5.1.2  針對(duì)不同用例的文件夾結(jié)構(gòu) 116
5.1.3  創(chuàng)建庫(kù)和sub-crate 120
5.2  為代碼創(chuàng)建文件 124
5.2.1  使用文檔注釋和私有注釋 124
5.2.2  在注釋中添加代碼 126
5.3  檢測(cè)和格式化代碼庫(kù) 128
5.3.1  安裝和使用Clippy 128
5.3.2  使用Rustfmt格式化代碼 131
5.4  本章小結(jié) 132
第6章  記錄、追蹤和調(diào)試 133
6.1  在Rust應(yīng)用中記錄日志 134
6.1.1  在Web服務(wù)中實(shí)現(xiàn)日志記錄 136
6.1.2  記錄HTTP請(qǐng)求日志 142
6.1.3  創(chuàng)建結(jié)構(gòu)化的日志 145
6.2  異步應(yīng)用中的追蹤 152
6.2.1  引入Tracing crate 153
6.2.2  集成Tracing到應(yīng)用 154
6.3  調(diào)試Rust應(yīng)用 158
6.3.1  在命令行上使用GDB 159
6.3.2  使用LLDB調(diào)試Web服務(wù) 160
6.3.3  使用Visual Studio和LLDB 162
6.4  本章小結(jié) 165
第7章  為應(yīng)用添加數(shù)據(jù)庫(kù) 167
7.1  設(shè)置示例數(shù)據(jù)庫(kù) 168
7.2  創(chuàng)建第一個(gè)表 168
7.3  使用數(shù)據(jù)庫(kù)crate 171
7.3.1  將SQLx添加到項(xiàng)目中 173
7.3.2  將Store連接到數(shù)據(jù)庫(kù) 174
7.4  重新實(shí)現(xiàn)路由函數(shù) 177
7.4.1  在get_questions中添加數(shù)據(jù)庫(kù) 178
7.4.2  重新實(shí)現(xiàn)add_question路由函數(shù) 185
7.4.3  問(wèn)題處理函數(shù)的更新和刪除 187
7.4.4  更新add_answer路由 190
7.5  處理錯(cuò)誤和追蹤數(shù)據(jù)庫(kù)交互 192
7.6  集成SQL遷移 198
7.7  案例研究:切換數(shù)據(jù)庫(kù)管理系統(tǒng) 201
7.8  本章小結(jié) 204
第8章  集成第三方API 205
8.1  準(zhǔn)備代碼庫(kù) 207
8.1.1  選擇一個(gè)API 208
8.1.2  了解HTTP庫(kù) 209
8.1.3  添加一個(gè)使用Reqwest的HTTP調(diào)用示例 211
8.1.4  處理外部API請(qǐng)求的錯(cuò)誤 213
8.2  將JSON響應(yīng)反序列化為結(jié)構(gòu)體 219
8.2.1  收集API響應(yīng)信息 220
8.2.2  為API響應(yīng)創(chuàng)建類(lèi)型 221
8.3  向API發(fā)送問(wèn)題和答案 226
8.3.1  重構(gòu)add_question路由函數(shù) 226
8.3.2  進(jìn)行敏感詞檢查以更新問(wèn)題 229
8.3.3  更新add_answer路由函數(shù) 230
8.4  處理超時(shí)和同時(shí)發(fā)生的多個(gè)請(qǐng)求 231
8.4.1  實(shí)現(xiàn)外部HTTP調(diào)用的重試機(jī)制 232
8.4.2  并發(fā)或并行執(zhí)行future 236
8.5  本章小結(jié) 238
第Ⅲ部分  投入生產(chǎn)
第9章  添加認(rèn)證和授權(quán) 241
9.1  為Web服務(wù)添加認(rèn)證 243
9.1.1  創(chuàng)建用戶(hù)概念 243
9.1.2  遷移數(shù)據(jù)庫(kù) 245
9.1.3  添加注冊(cè)端點(diǎn) 247
9.1.4  對(duì)密碼進(jìn)行哈希處理 250
9.1.5  處理重復(fù)賬戶(hù)錯(cuò)誤 252
9.1.6  有狀態(tài)認(rèn)證與無(wú)狀態(tài)認(rèn)證 258
9.1.7  添加登錄端點(diǎn) 259
9.1.8  為令牌添加有效期 263
9.2  添加授權(quán)中間件 265
9.2.1  遷移數(shù)據(jù)庫(kù)表 265
9.2.2  創(chuàng)建令牌驗(yàn)證中間件 266
9.2.3  擴(kuò)展現(xiàn)有路由以處理賬戶(hù)ID 270
9.3  未涵蓋的內(nèi)容 275
9.4  本章小結(jié) 276
第10章  部署應(yīng)用程序 277
10.1  通過(guò)環(huán)境變量設(shè)置應(yīng)用程序 277
10.1.1  設(shè)置配置文件 279
10.1.2  在程序中接收命令行參數(shù) 281
10.1.3  在Web服務(wù)中讀取和解析環(huán)境變量 283
10.2  根據(jù)不同環(huán)境編譯Web服務(wù) 288
10.2.1  構(gòu)建二進(jìn)制文件時(shí)的development和release標(biāo)志 289
10.2.2  針對(duì)不同環(huán)境交叉編譯二進(jìn)制文件 290
10.3  在構(gòu)建流程中使用build.rs 291
10.4  創(chuàng)建正確的Web服務(wù)Docker鏡像 294
10.4.1  創(chuàng)建靜態(tài)鏈接的Docker鏡像 295
10.4.2  使用docker-compose建立本地Docker環(huán)境 296
10.4.3  將Web服務(wù)器的配置提取到一個(gè)新模塊中 299
10.5  本章小結(jié) 303
第11章  測(cè)試Rust應(yīng)用程序 305
11.1  業(yè)務(wù)邏輯的單元測(cè)試 306
11.1.1  測(cè)試分頁(yè)邏輯和處理自定義錯(cuò)誤 307
11.1.2  使用環(huán)境變量測(cè)試配置模塊 310
11.1.3  使用新創(chuàng)建的模擬服務(wù)器測(cè)試profanity模塊 314
11.2  測(cè)試Warp過(guò)濾器 321
11.3  創(chuàng)建集成測(cè)試配置 325
11.3.1  將代碼庫(kù)拆分為lib.rs和二進(jìn)制文件 327
11.3.2  創(chuàng)建集成測(cè)試crate和單發(fā)服務(wù)器實(shí)現(xiàn) 330
11.3.3  添加注冊(cè)測(cè)試 332
11.3.4  發(fā)生錯(cuò)誤時(shí)進(jìn)行堆棧展開(kāi) 336
11.3.5  測(cè)試登錄和發(fā)布問(wèn)題 337
11.4  本章小結(jié) 339
附錄  關(guān)于安全的思考 341
 
 

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) leeflamesbasketballcamps.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)