使用 Actix、SQLx 和 JWT 在 Rust 中创建 API 服务器

Creating an API server in Rust with Actix, SQLx and JWT

使用 Actix Web、SQLx 和 JWT 认证,以 Rust 的安全性和性能构建自己的 REST API 服务器。

你将学到

  • 创建一个 Rust 项目
  • 使用 Actix Web 创建一个 REST API 服务器
  • 使用 SQLx 与数据库交互
  • 使用 JWT 验证 API
  • 使用 SQLx CLI 运行数据库迁移

要求

  • 基本的编程经验
  • 对 Rust 编程语言有基本了解

课程介绍

在这个课程中,我们将使用 Rust 创建一个 REST API 服务器来管理名为 MoneyFlow 的个人预算。MoneyFlow 将允许我们管理类别和交易。

使用这个系统,我们将能够:

  • 创建、列出、更新和删除类别

  • 创建、列出、更新和删除交易

  • 列出特定类别的所有交易

  • 查看总运行余额和特定类别的运行余额

我们将学习如何:

  • 使用 cargo 创建一个新的 Rust 项目

  • 构建并运行我们的 Rust 项目

  • 添加 crates 并启用 crates 特性

我们将学习一些基本的 API 概念,例如:

  • 路由和 HTTP 方法

  • 从 HTTP 请求中提取数据

  • 与数据库交互以查询和插入数据

  • 创建用户账户

  • 使用 JWT 进行身份验证

  • 使用模型之间的关系查询和列出关联数据

除了这些概念,我们还将学习如何:

  • 以类型安全的方式处理传入(请求)和传出(响应)数据

  • 处理 CORS

  • 速率限制

  • 创建并运行数据库迁移

我们将在课程末尾增加一节课,学习如何将我们的 API 服务器 Docker 化,以便在任何地方部署和运行。

我们将使用以下 crates:

  1. Actix Web: 一个强大、实用且极快的 Rust Web 框架。

  2. SQLx: 一个异步、纯 Rust SQL 库,具有编译时查询检查功能。

  3. jsonwebtoken 用于以强类型方式创建和解码 JWT。

  4. serde 和 serde_json 用于高效且通用地序列化和反序列化 Rust 数据结构。

这门课程适合谁:

  • 对使用 Rust 创建 REST API 服务器和其他项目感兴趣的程序员
  • 希望使用 Actix Web 框架的初级 Rust 开发者
  • 希望使用 SQLx 进行数据库交互的初级 Rust 开发者
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。