回顾

让我们稍事休息一下,回顾一下,我们已经完成了相当多的内容!

我们着手实现一个 /health_check 端点,这让我们有机会进一步了解我们的 Web 框架 actix-web 的基础知识,以及 Rust API 的(集成)测试基础知识。

现在是时候利用我们学到的知识,最终完成我们电子邮件通讯项目的第一个用户故事了:

作为博客访问者, 我想订阅新闻简报, 以便在博客发布新内容时收到电子邮件更新

我们希望博客访问者在网页嵌入的表单中输入他们的电子邮件地址。

该表单将触发对我们后端 API 的 POST /subscriptions 调用,后端 API 将实际处理信息、存储信息并返回响应。

我们将深入研究:

  • 如何在 actix-web 中读取 HTML 表单中收集的数据(例如,如何解析 POST 请求体?);
  • 哪些库可以在 Rust 中使用 PostgreSQL 数据库(diesel、sqlx 和 tokio-postgres);
  • 如何设置和管理数据库迁移;
  • 如何在 API 请求处理程序中获取数据库连接;
  • 如何在集成测试中测试副作用(即存储数据);
  • 如何避免在使用数据库时测试之间出现奇怪的交互。

让我们开始吧!