loco-rs:用Rust编写类Rails on Rust的CRUD框架


Loco 是一个 Rust API 和网络框架,适用于全栈产品构建者。

你需要对 Rust 有一定程度的熟悉。您需要知道如何构建、测试和运行Rust项目,使用过一些流行的库,如clap、regex、tokio、axum或其他网络框架,但不要太花哨。在Loco中没有疯狂的生命周期扭转器或复杂/过于神奇的宏,您需要知道它们是如何工作的。

Loco深受Rails的启发。如果您了解Rails和Rust,就会有宾至如归的感觉。如果您只了解Rails而对Rust一无所知,您会发现Loco让您耳目一新。我们并不假定您了解 Rails。

演示
让我们用 3 个命令在 `loco` 上创建一个博客。首先安装`loco-cli`:
$ cargo install loco-cli

现在您可以创建新应用程序(选择“Saas 应用程序”)。

$ loco new
❯ App name? [myapp]:
❯ Saas app (with DB and user auth)
  Stateless service (minimal, no db)
 Loco app generated successfully in:
myapp

要配置数据库,请运行loco:loco一个名为 的本地 postgres 数据库loco_app。

您可以使用 Docker 来运行 Postgres 实例:

$ docker run -d -p 5432:5432 -e POSTGRES_USER=loco -e POSTGRES_DB=loco_app -e POSTGRES_PASSWORD="loco" postgres:15.3-alpine

现在cd进入您的myapp应用程序并启动您的应用程序:

$ cd myapp
$ cargo loco start

生成博客API
实现CRUD API博客

$ cargo loco generate scaffold post title:string content:text

  :
  :
added: "src/controllers/post.rs"
injected:
"src/controllers/mod.rs"
injected:
"src/app.rs"
added:
"tests/requests/post.rs"
injected:
"tests/requests/mod.rs"
* Migration for `post` added! You can now apply it with `$ cargo loco db migrate`.
* A test for model `posts` was added. Run with `cargo test`.
* Controller `post` was added successfully.
* Tests for controller `post` was added successfully. Run `cargo test`.

您的数据库已迁移,模型、实体和完整的 CRUD 控制器已自动生成。

启动应用程序:
$ cargo loco start

接下来,尝试添加帖子:

$ curl -X POST -H "Content-Type: application/json" -d '{
 
"title": "Your Title",
 
"content": "Your Content xxx"
}' localhost:3000/posts

查询发出的帖子:$ curl localhost:3000/posts

总结:创建博客的 3 个命令是:

  1. cargo install loco-cli
  2. loco new
  3. cargo loco generate scaffold post title:string content:text

完毕