回顾
让我们稍事休息一下,回顾一下,我们已经完成了相当多的内容!
我们着手实现一个 /health_check 端点,这让我们有机会进一步了解我们的 Web 框架 actix-web 的基础知识,以及 Rust API 的(集成)测试基础知识。
现在是时候利用我们学到的知识,最终完成我们电子邮件通讯项目的第一个用户故事了:
作为博客访问者, 我想订阅新闻简报, 以便在博客发布新内容时收到电子邮件更新
我们希望博客访问者在网页嵌入的表单中输入他们的电子邮件地址。
该表单将触发对我们后端 API 的 POST /subscriptions
调用,后端 API 将实际处理信息、存储信息并返回响应。
我们将深入研究:
- 如何在 actix-web 中读取 HTML 表单中收集的数据(例如,如何解析 POST 请求体?);
- 哪些库可以在 Rust 中使用 PostgreSQL 数据库(diesel、sqlx 和 tokio-postgres);
- 如何设置和管理数据库迁移;
- 如何在 API 请求处理程序中获取数据库连接;
- 如何在集成测试中测试副作用(即存储数据);
- 如何避免在使用数据库时测试之间出现奇怪的交互。
让我们开始吧!