时光漫步

时光漫步

图书全部分类
套装书
婚恋与两性
字典词典/工具书
教学/实验用品
棋牌麻将
白酒
积木拼插
绘图计算用品
青少年素质培养

资源详情

Rust Web开发

Rust Web开发-电子书下载封面


作者: [德] 巴斯蒂安·格鲁伯(Bastian Gruber)著 译
出版社: 清华大学出版社
原作名: Rust Web Development
译者: 赵永/邹松廷/卢贤泼
出版年: 2024-4
页数: 360
定价: 98
装帧: 平装
ISBN: 9787302658238

下载次数:106

书籍详情介绍

Rust Web开发详情图
Rust Web开发详情图
Rust Web开发详情图
Rust Web开发详情图
Rust Web开发详情图
Rust Web开发详情图
Rust Web开发详情图

书籍资料

  • 内容简介
  • 作者介绍
  • 书籍目录

如果你厌倦了缓慢、占用大量资源且不稳定的模板化Web开发工具,Rust就是你的解决方案。Rust服务提供了稳定的安全保证、非凡的开发经验,以及能够自动防止常见错误的编译器。
《Rust Web开发》教你使用Rust以及重要的Rust库(如异步运行时的Tokio、用于Web服务器和API的Warp,以及运行外部HTTP请求的Reqwest)来创建服务端的Web应用。《Rust Web开发》包含大量的代码示例以及专业的提示,以帮助你创建项目和组织代码。随着学习的深入,你将创建一个完整的Q&A Web服务并逐章迭代你的代码,就像参与了真实的项目开发一样。
主要内容
● 在异步环境中处理借用检查器
● 创建Web API并处理JSON
● 组建一个用于Rust异步开发的技术栈
● 优雅地处理错误
● 测试、追踪、记录和调试
● 在多个环境中部署Rust应用

巴斯蒂安·格鲁伯(Bastian Gruber)是Centrifuge的协议工程师。他曾经是Rust官方异步工作组的一员,并创建了Rust and Tell Berlin MeetUp小组。

第Ⅰ部分Rust介绍
第1章为什么使用Rust 3
1.1开箱即用:Rust提供的工具 4
1.2Rust编译器 8
1.3Rust用于Web服务 10
1.4Rust应用程序的可维护性 15
1.5本章小结 15
第2章建立基础 17
2.1遵循Rust规范 18
2.1.1使用结构体对资源进行建模 19
2.1.2理解Option 21
2.1.3使用文档解决错误 22
2.1.4在Rust中处理字符串 27
2.1.5深入理解移动、借用和所有权 28
2.1.6使用和实现trait 31
2.1.7处理结果 39
2.2创建Web服务器 40
2.2.1同时处理多个请求 41
2.2.2Rust的异步环境 42
2.2.3Rust处理async/await 43
2.2.4使用RustFuture类型 44
2.2.5选择运行时 45
2.2.6选择Web框架 46
2.3本章小结

49
第Ⅱ部分开始
第3章创建第一个路由函数 53
3.1认识Web框架:Warp 54
3.1.1Warp包括哪些内容 54
3.1.2Warp的过滤器系统 55
3.2获取第一个JSON响应 56
3.2.1与你的框架理念保持一致 57
3.2.2处理正确的路由 58
3.2.3使用Serde库 59
3.2.4优雅地处理错误 61
3.3处理CORS头信息 65
3.3.1在应用层面返回CORS头信息 66
3.3.2测试CORS响应 67
3.4本章小结 70
第4章实现具象状态传输API 73
4.1从内存中获取问题 74
4.1.1设置一个模拟数据库 75
4.1.2准备一组测试数据 78
4.1.3从模拟数据库中读取 80
4.1.4解析查询参数 84
4.1.5返回自定义错误 88
4.2创建、更新和删除问题 92
4.2.1在线程安全的情况下更新数据 92
4.2.2添加一个问题 96
4.2.3更新问题 98
4.2.4处理错误的请求 100
4.2.5从存储中删除问题 101
4.3通过url表单创建问题 103
4.3.1url表单和JSON的区别 104
4.3.2通过url表单添加答案 104
4.4本章小结 107
第5章清理代码库 109
5.1将代码模块化 109
5.1.1使用Rust的内置模块系统 110
5.1.2针对不同用例的文件夹结构 116
5.1.3创建库和sub-crate 120
5.2为代码创建文件 124
5.2.1使用文档注释和私有注释 124
5.2.2在注释中添加代码 126
5.3检测和格式化代码库 128
5.3.1安装和使用Clippy 128
5.3.2使用Rustfmt格式化代码 131
5.4本章小结 132
第6章记录、追踪和调试 133
6.1在Rust应用中记录日志 134
6.1.1在Web服务中实现日志记录 136
6.1.2记录HTTP请求日志 142
6.1.3创建结构化的日志 145
6.2异步应用中的追踪 152
6.2.1引入Tracingcrate 153
6.2.2集成Tracing到应用 154
6.3调试Rust应用 158
6.3.1在命令行上使用GDB 159
6.3.2使用LLDB调试Web服务 160
6.3.3使用VisualStudio和LLDB 162
6.4本章小结 165
第7章为应用添加数据库 167
7.1设置示例数据库 168
7.2创建第一个表 168
7.3使用数据库crate 171
7.3.1将SQLx添加到项目中 173
7.3.2将Store连接到数据库 174
7.4重新实现路由函数 177
7.4.1在get_questions中添加数据库 178
7.4.2重新实现add_question路由函数 185
7.4.3问题处理函数的更新和删除 187
7.4.4更新add_answer路由 190
7.5处理错误和追踪数据库交互 192
7.6集成SQL迁移 198
7.7案例研究:切换数据库管理系统 201
7.8本章小结 204
第8章集成第三方API 205
8.1准备代码库 207
8.1.1选择一个API 208
8.1.2了解HTTP库 209
8.1.3添加一个使用Reqwest的HTTP调用示例 211
8.1.4处理外部API请求的错误 213
8.2将JSON响应反序列化为结构体 219
8.2.1收集API响应信息 220
8.2.2为API响应创建类型 221
8.3向API发送问题和答案 226
8.3.1重构add_question路由函数 226
8.3.2进行敏感词检查以更新问题 229
8.3.3更新add_answer路由函数 230
8.4处理超时和同时发生的多个请求 231
8.4.1实现外部HTTP调用的重试机制 232
8.4.2并发或并行执行future 236
8.5本章小结 238
第Ⅲ部分投入生产
第9章添加认证和授权 241
9.1为Web服务添加认证 243
9.1.1创建用户概念 243
9.1.2迁移数据库 245
9.1.3添加注册端点 247
9.1.4对密码进行哈希处理 250
9.1.5处理重复账户错误 252
9.1.6有状态认证与无状态认证 258
9.1.7添加登录端点 259
9.1.8为令牌添加有效期 263
9.2添加授权中间件 265
9.2.1迁移数据库表 265
9.2.2创建令牌验证中间件 266
9.2.3扩展现有路由以处理账户ID 270
9.3未涵盖的内容 275
9.4本章小结 276
第10章部署应用程序 277
10.1通过环境变量设置应用程序 277
10.1.1设置配置文件 279
10.1.2在程序中接收命令行参数 281
10.1.3在Web服务中读取和解析环境变量 283
10.2根据不同环境编译Web服务 288
10.2.1构建二进制文件时的development和release标志 289
10.2.2针对不同环境交叉编译二进制文件 290
10.3在构建流程中使用build.rs 291
10.4创建正确的Web服务Docker镜像 294
10.4.1创建静态链接的Docker镜像 295
10.4.2使用docker-compose建立本地Docker环境 296
10.4.3将Web服务器的配置提取到一个新模块中 299
10.5本章小结 303
第11章测试Rust应用程序 305
11.1业务逻辑的单元测试 306
11.1.1测试分页逻辑和处理自定义错误 307
11.1.2使用环境变量测试配置模块 310
11.1.3使用新创建的模拟服务器测试profanity模块 314
11.2测试Warp过滤器 321
11.3创建集成测试配置 325
11.3.1将代码库拆分为lib.rs和二进制文件 327
11.3.2创建集成测试crate和单发服务器实现 330
11.3.3添加注册测试 332
11.3.4发生错误时进行堆栈展开 336
11.3.5测试登录和发布问题 337
11.4本章小结 339
附录关于安全的思考 341


0.445286s