欢迎光临澳大利亚新华书店网 [登录 | 免费注册]

    • Rust Web开发(使用Warp\Tokio和Reqwest)/Web开发与设计
      • 作者:(德)巴斯蒂安·格鲁伯|责编:王军//刘远菁|译者:赵永//邹松廷//卢贤泼
      • 出版社:清华大学
      • ISBN:9787302658238
      • 出版日期:2024/04/01
      • 页数:344
    • 售价:39.2
  • 内容大纲

        本书教你使用Rust以及重要的Rust库(如异步运行时的Tokio、用于Web服务器和API的Warp,以及运行外部HTTP请求的Reqwest)来创建服务端的Web应用。本书包含大量的代码示例以及专业的提示,以帮助你创建项目和组织代码。随着学习的深入,你将创建一个完整的Q&A Web服务并逐章迭代你的代码,就像参与了真实的项目开发一样。
        本书适合熟悉Java、Node或者Go语言并且掌握了Rust基础知识的开发人员。
  • 作者介绍

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

    第I部分  Rust介绍
      第1章  为什么使用Rust
        1.1  开箱即用:Rust提供的工具
        1.2  Rust编译器
        1.3  Rust用于Web服务
        1.4  Rust应用程序的可维护性
        1.5  本章小结
      第2章  建立基础
        2.1  遵循Rust规范
          2.1.1  使用结构体对资源进行建模
          2.1.2  理解Option
          2.1.3  使用文档解决错误
          2.1.4  在Rust中处理字符串
          2.1.5  深入理解移动、借用和所有权
          2.1.6  使用和实现trait
          2.1.7  处理结果
        2.2  创建Web服务器
          2.2.1  同时处理多个请求
          2.2.2  Rust的异步环境
          2.2.3  Rust处理async/await
          2.2.4  使用RustFuture类型
          2.2.5  选择运行时
          2.2.6  选择Web框架
        2.3  本章小结
    第II部分  开始
      第3章  创建第一个路由函数
        3.1  认识Web框架:Warp
          3.1.1  Warp包括哪些内容
          3.1.2  Warp的过滤器系统
        3.2  获取第一个JSON响应
          3.2.1  与你的框架理念保持一致
          3.2.2  处理正确的路由
          3.2.3  使用Serde库
          3.2.4  优雅地处理错误
        3.3  处理CORS头信息
          3.3.1  在应用层面返回CORS头信息
          3.3.2  测试CORS响应
        3.4  本章小结
      第4章  实现具象状态传输API
        4.1  从内存中获取问题
          4.1.1  设置一个模拟数据库
          4.1.2  准备一组测试数据
          4.1.3  从模拟数据库中读取
          4.1.4  解析查询参数
          4.1.5  返回自定义错误
        4.2  创建、更新和删除问题
          4.2.1  在线程安全的情况下更新数据
          4.2.2  添加一个问题
          4.2.3  更新问题
          4.2.4  处理错误的请求

          4.2.5  从存储中删除问题
        4.3  通过url表单创建问题
          4.3.1  url表单和JSON的区别
          4.3.2  通过ul表单添加答案
        4.4  本章小结
      第5章  清理代码库
        5.1  将代码模块化
          5.1.1  使用Rust的内置模块系统
          5.1.2  针对不同用例的文件夹结构
          5.1.3  创建库和sub-crate
        5.2  为代码创建文件
          5.2.1  使用文档注释和私有注释
          5.2.2  在注释中添加代码
        5.3  检测和格式化代码库
          5.3.1  安装和使用Clippy
          5.3.2  使用Rustfint格式化代码
        5.4  本章小结
      第6章  记录、追踪和调试
        6.1  在Rust应用中记录日志
          6.1.1  在Web服务中实现日志记录
          6.1.2  记录HTTP请求日志
          6.1.3  创建结构化的日志
        6.2  异步应用中的追踪
          6.2.1  引入Tracingcrate
          6.2.2  集成Tracing到应用
        6.3  调试Rust应用
          6.3.1  在命令行上使用GDB
          6.3.2  使用LLDB调试Web服务
          6.3.3  使用VisualStudio和LLDB
        6.4  本章小结
      第7章  为应用添加数据库
        7.1  设置示例数据库
        7.2  创建第一个表
        7.3  使用数据库crate
          7.3.1  将SQLx添加到项目中
          7.3.2  将Store连接到数据库
        7.4  重新实现路由函数
          7.4.1  在get_questions中添加数据库
          7.4.2  重新实现addquestion路由函数
          7.4.3  问题处理函数的更新和删除
          7.4.4  更新addanswer路由
        7.5  处理错误和追踪数据库交互
        7.6  集成SQL迁移
        7.7  案例研究:切换数据库管理系统
        7.8  本章小结
      第8章  集成第三方API
        8.1  准备代码库
          8.1.1  选择一个API
          8.1.2  了解HTTP库
          8.1.3  添加一个使用Reqwest的HTTP调用示例

          8.1.4  处理外部API请求的错误
        8.2  将JSON响应反序列化为结构体
          8.2.1  收集API响应信息
          8.2.2  为API响应创建类型
        8.3  向API发送问题和答案
          8.3.1  重构addquestion路由函数
          8.3.2  进行敏感词检查以更新问题
          8.3.3  更新addanswer路由函数
        8.4  处理超时和同时发生的多个请求
          8.4.1  实现外部HTTP调用的重试机制
          8.4.2  并发或并行执行future
        8.5  本章小结
    第III部分  投入生产
      第9章  添加认证和授权
        9.1  为Web服务添加认证
          9.1.1  创建用户概念
          9.1.2  迁移数据库
          9.1.3  添加注册端点
          9.1.4  对密码进行哈希处理
          9.1.5  处理重复账户错误
          9.1.6  有状态认证与无状态认证
          9.1.7  添加登录端点
          9.1.8  为令牌添加有效期
        9.2  添加授权中间件
          9.2.1  迁移数据库表
          9.2.2  创建令牌验证中间件
          9.2.3  扩展现有路由以处理账户ID
        9.3  未涵盖的内容
        9.4  本章小结
      第10章  部署应用程序
        10.1  通过环境变量设置应用程序
          10.1.1  设置配置文件
          10.1.2  在程序中接收命令行参数
          10.1.3  在Web服务中读取和解析环境变量
        10.2  根据不同环境编译Web服务
          10.2.1  构建二进制文件时的development和release标志
          10.2.2  针对不同环境交叉编译二进制文件
        10.3  在构建流程中使用build.rs
        10.4  创建正确的Web服务Docker镜像
          10.4.1  创建静态链接的Docker镜像
          10.4.2  使用docker-compose建立本地Docker环境
          10.4.3  将Web服务器的配置提取到一个新模块中
        10.5  本章小结
      第11章  测试Rust应用程序
        11.1  业务逻辑的单元测试
          11.1.1  测试分页逻辑和处理自定义错误
          11.1.2  使用环境变量测试配置模块
          11.1.3  使用新创建的模拟服务器测试profanity模块
        11.2  测试Warp过滤器
        11.3  创建集成测试配置

          11.3.1  将代码库拆分为lib.rs和二进制文件
          11.3.2  创建集成测试crate和单发服务器实现
          11.3.3  添加注册测试
          11.3.4  发生错误时进行堆栈展开
          11.3.5  测试登录和发布问题
        11.4  本章小结
    附录  关于安全的思考