#config-toml #backend-server #mysql #axum-server #axum #server #orm

app prkserver

prkserver 是一个 CLI 工具,它帮助使用 Axum 和 SQLx 在 Rust 中创建后端服务器。它根据提供的 config.toml 文件配置一切。

9 个版本

0.1.9 2024年6月18日
0.1.8 2024年6月14日

#205数据库接口

MIT 许可证

35KB
881 代码行

prkserver

prkserver 是一个 CLI 工具,它帮助使用 Axum 和 SQLx 在 Rust 中创建后端服务器。它根据提供的 config.toml 文件配置一切。

特性

  • 使用 Axum 生成 Rust 后端项目,用于 HTTP 处理。
  • 为数据库交互配置 SQLx。
  • 支持 PostgreSQL 和 MySQL 数据库。
  • 根据 config.toml 文件创建模型、中间件和端点。

安装

要安装 prkserver,请使用 cargo

cargo install prkserver

使用方法

要使用 prkserver,创建一个定义项目配置的 config.toml 文件。以下是一个示例 config.toml 文件

project_name = "backend_project"
database_url = "mysql://user:password@localhost/database_name"
database_type = "mysql"

[[models]]
name = "User"
table_name = "users"
fields = [
    { name = "id", type = "i32" },
    { name = "username", type = "String" },
    { name = "email", type = "String" },
    { name = "user_token", type = "String" },
]
endpoints = [
    { method = "GET", path = "/users" },
    { method = "POST", path = "/users", body_params = [
        { name = "username", type = "String" },
        { name = "email", type = "String" },
    ] },
]


[[models]]
name = "Todo"
table_name = "todos"
fields = [
    { name = "id", type = "i32" },
    { name = "task", type = "String" },
    { name = "description", type = "Option<String>" },
]
endpoints = [
    { method = "GET", path = "/todos", middlewares = [
        "UserLoginHistoryMiddleware",
    ],  },
    { method = "POST", path = "/todos", middlewares = [
        "UserLoginHistoryMiddleware",
    ], body_params = [
        { name = "task", type = "String" },
        { name = "description", type = "Option<String>" },
    ]  },
    { method = "GET", path = "/todos/:id", path_params = [
        { name = "id", type = "i32" },
    ] },
]

[[models]]
name = "UserLoginHistory"
table_name = "user_login_history"
fields = [
    { name = "id", type = "i32" },
    { name = "task", type = "String" },
    { name = "description", type = "Option<String>" },
]

[[middlewares]]
model = "UserLoginHistory"
select_from_model = "UserLoginHistory"
validate_header = [{ model_field = "token", header_key = "token" }]

一旦你有 config.toml 文件,在 config 文件的路径下运行 prkserver

prkserver

这将在名为 project_name 的目录中生成一个新项目。

注意:仍在开发中。

依赖关系

~1.1–1.8MB
~35K SLoC