使用Loco快速搭建自己的后台系统

💡 原文中文,约6300字,阅读约需15分钟。
📝

内容提要

Rust框架Loco.rs提供了类似Ruby on Rails的功能,可以快速搭建后台。使用命令行安装和创建项目,需要配置数据库和运行应用。通过命令生成CRUD API,可以进行接口测试和认证。文章总结了对Loco.rs的使用体验,并认为它有很大的发展潜力。

🔎

延伸解读

数据库配置的常见陷阱

文章指出,Loco 默认配置文件中的数据库名可能与 Docker 命令创建的不一致,导致连接错误。例如,配置中为 loco_app,而 Docker 创建的是 myapp_development。解决方法是修改 config/development.yaml 中的 uri,使其与 Docker 环境变量 POSTGRES_DB 一致。这提醒读者在配置数据库时需仔细核对名称,避免因文档与代码不同步而浪费时间。

认证功能与 Redis 依赖

Loco 内置了认证功能,但需要 Redis 服务支持,可能是为了水平扩展。文章建议使用 Docker 运行 Redis,并配置连接地址。此外,注册用户后需手动修改数据库中的 email_verified_at 字段以跳过邮箱验证,因为发送邮件需要配置邮件服务器。这显示了 Loco 在认证方面的开箱即用性,但也存在一些需要手动干预的环节。

编译时间与开发体验

文章多次提到安装和运行 Loco 需要漫长的编译等待,例如 cargo install 和 cargo loco start 都可能耗时数分钟。这可能会影响开发效率,尤其是在快速迭代时。不过,一旦编译完成,后续的代码生成和接口测试相对顺畅。读者需权衡编译时间与开发便利性,适合对 Rust 编译速度有心理准备的开发者。

Loco 的潜力与适用场景

作者认为 Loco 代码简洁清晰,适合快速原型开发,并对其未来表示乐观,类比 Ruby on Rails。文章总结,虽然后台开发不全是 CRUD,但 CRUD 可以高度抽象,Loco 通过代码生成简化了这些重复操作,让开发者能更专注于业务逻辑。对于需要快速搭建后台的 Rust 项目,Loco 是一个值得尝试的选择。

❓

Q&A

Loco.rs 是什么?它有什么主要功能?

Loco.rs 是一个 Rust 框架,提供类似 Ruby on Rails 的功能,可以快速搭建后台系统。它支持增删改查、权限验证、发送邮件和后台任务等开箱即用的功能。

如何安装 Loco.rs 并创建一个新项目?

使用命令行安装:`cargo install loco-cli` 和 `cargo install sea-orm-cli`。然后运行 `loco new` 创建项目,过程中需要回答应用名称和模板类型(如 lightweight-service、Rest API 或 Saas app)。

运行 Loco.rs 应用前需要做哪些数据库配置?

需要先运行一个数据库,可以使用 Docker 创建 PostgreSQL 数据库,例如:`docker run -d -p 5432:5432 -e POSTGRES_USER=loco -e POSTGRES_DB=myapp_development -e POSTGRES_PASSWORD="loco" postgres:15.3-alpine`。然后修改 `config/` 目录下的配置文件,确保数据库名称与 Docker 命令中设置的一致,否则会连接失败。

如何使用 Loco.rs 生成 CRUD API 并进行接口测试?

使用命令 `cargo loco generate scaffold post title:string content:text` 生成 CRUD API。然后启动应用 `cargo loco start`,即可用 curl 测试,例如创建数据:`curl -X POST -H "Content-Type: application/json" -d '{"title":"Your Title","content":"Your Content xxx"}' localhost:3000/api/posts`,查询数据:`curl localhost:3000/api/posts`。

Loco.rs 的认证功能如何启用?需要什么额外服务?

Loco.rs 内置认证功能,需要 Redis 服务来支持水平扩展。可以使用 Docker 运行 Redis:`docker run -p 6379:6379 -d redis redis-server`。如果不是本地部署,还需要配置 Redis 连接地址。

在 Loco.rs 中注册用户时如何跳过邮箱验证?

由于发送邮件需要配置邮件服务器,注册接口可能会失败。可以手动修改数据库,将 `email_verified_at` 字段设置为一个日期即可跳过验证,例如:`update users set email_verified_at = '2024-02-03 17:41:16.170637' where id = 1;`。

Loco.rs 适合用于快速原型开发吗?作者如何评价它?

是的,作者认为 Loco.rs 在后台开发中具有很大的潜力,代码简洁清晰,适合快速原型开发。作者表示以后有机会快速做原型也会选择 Loco.rs。

🏷️

标签

➡️

继续阅读