9 个版本
0.1.9 | 2024年6月18日 |
---|---|
0.1.8 | 2024年6月14日 |
#205 在 数据库接口
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