Starters (样板)

使用 Loco 预定义的样板简化你的项目设置,旨在使你的开发旅程更加顺畅。首先,安装我们的 CLI 并选择适合你需求的模板。

cargo install loco
cargo install sea-orm-cli # 仅当需要数据库时

创建一个 starter:

 loco new
 ❯ App name? · myapp
 ❯ What would you like to build? · Saas App with client side rendering
 ❯ Select a DB Provider · Sqlite
 ❯ Select your background worker type · Async (in-process tokio async tasks)

🚂 Loco 应用已成功生成于:
myapp/

- assets: 你已为你的 asset 服务配置选择了 `clientside`

下一步,构建你的前端:
  $ cd frontend/
  $ npm install && npm run build

可用的 Starters

SaaS Starter

SaaS starter 是一个全包含的设置,适用于需要 UI 和 REST API 的项目。对于 UI,此 starter 支持客户端应用或经典服务端模板(或两者结合)。

UI

  • 基于 React 和 Vite 构建的前端 starter(易于替换为你偏好的框架)。
  • 静态中间件,指向你的前端构建并包含回退索引。或者,你可以将其配置为服务端模板的静态 assets。
  • 为服务端模板配置的 Tera 视图引擎,包括 i18n 配置。模板和 i18n assets 位于 assets/ 中。

Rest API

  • pinghealth 端点用于检查服务健康状况。使用以下命令查看所有端点 cargo loco routes
  • 用户表和身份验证中间件。
  • 用户模型,带有身份验证逻辑和用户注册。
  • 忘记密码 API 流程。
  • Mailer,用于发送欢迎邮件和处理忘记密码请求。

为服务端模板配置 assets

SaaS starter 预配置用于前端客户端 assets。 如果你想使用服务端模板渲染,其中包括图片和样式等 assets,你可以为其配置 asset 中间件:

在你的 config/development.yaml 中,取消注释服务端配置,并注释客户端配置。

    # server-side static assets config
    # 用于 initializers/view_engine.rs 中的 view_engine
    #
    static:
      enable: true
      must_exist: true
      precompressed: false
      folder:
        uri: "/static"
        path: "assets/static"
      fallback: "assets/static/404.html"
    # client side app static config
    # static:
    #   enable: true
    #   must_exist: true
    #   precompressed: false
    #   folder:
    #     uri: "/"
    #     path: "frontend/dist"
    #   fallback: "frontend/dist/index.html"

Rest API Starter

如果你只需要 REST API 而不需要前端,请选择 Rest API starter。如果你之后改变主意并决定提供前端,只需启用 static 中间件并将配置指向你的 frontend 发布文件夹即可。

Lightweight Service Starter

Lightweight Service starter 专注于控制器和视图(响应模式),是极简主义的。如果你需要一个没有数据库、前端、workers 或 Loco 提供的其他功能的 REST API 服务,那么这是你的理想选择!