由于此商品库存有限,请在下单后15分钟之内支付完成,手慢无哦!
100%刮中券,最高50元无敌券,券有效期7天
活动自2017年6月2日上线,敬请关注云钻刮券活动规则更新。
如活动受政府机关指令需要停止举办的,或活动遭受严重网络攻击需暂停举办的,或者系统故障导致的其它意外问题,苏宁无需为此承担赔偿或者进行补偿。
[正版新书] Rust Web开发 [德] 巴斯蒂安·格鲁伯(Bastian Gruber)著 赵永、邹松廷、卢贤泼 译
¥ ×1
书名: | Rust Web开发 |
出版社: | 清华大学出版社 |
出版日期 | 2024 |
ISBN号: | 9787302658238 |
主要内容 ● 在异步环境中处理借用检查器 ● 创建Web API并处理JSON ● 组建一个用于Rust异步开发的技术栈 ● 优雅地处理错误 ● 测试、追踪、记录和调试 ● 在多个环境中部署Rust应用
|
巴斯蒂安·格鲁伯(Bastian Gruber)是Centrifuge的协议工程师。他曾经是Rust官方异步工作组的一员,并创建了Rust and Tell Berlin MeetUp小组。 |
|
如果你厌倦了缓慢、占用大量资源且不稳定的模板化Web开发工具,Rust就是你的解决方案。Rust服务提供了稳定的安全保证、非凡的开发经验,以及能够自动防止常见错误的编译器。 《Rust Web开发》教你使用Rust以及重要的Rust库(如异步运行时的Tokio、用于Web服务器和API的Warp,以及运行外部HTTP请求的Reqwest)来创建服务端的Web应用。《Rust Web开发》包含大量的代码示例以及专业的提示,以帮助你创建项目和组织代码。随着学习的深入,你将创建一个完整的Q&A Web服务并逐章迭代你的代码,就像参与了真实的项目开发一样。
|
|
目 录 第Ⅰ部分 Rust介绍 第1章 为什么使用Rust 3 1.1 开箱即用:Rust提供的工具 4 1.2 Rust编译器 8 1.3 Rust用于Web服务 10 1.4 Rust应用程序的可维护性 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.2 Rust的异步环境 42 2.2.3 Rust处理async/await 43 2.2.4 使用Rust Future类型 44 2.2.5 选择运行时 45 2.2.6 选择Web框架 46 2.3 本章小结 49 第Ⅱ部分 开始 第3章 创建第一个路由函数 53 3.1 认识Web框架:Warp 54 3.1.1 Warp包括哪些内容 54 3.1.2 Warp的过滤器系统 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.1 url表单和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 引入Tracing crate 153 6.2.2 集成Tracing到应用 154 6.3 调试Rust应用 158 6.3.1 在命令行上使用GDB 159 6.3.2 使用LLDB调试Web服务 160 6.3.3 使用Visual Studio和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 |
|
亲,大宗购物请点击企业用户渠道>小苏的服务会更贴心!
亲,很抱歉,您购买的宝贝销售异常火爆让小苏措手不及,请稍后再试~
非常抱歉,您前期未参加预订活动,
无法支付尾款哦!
抱歉,您暂无任性付资格