9 个版本
0.1.9 | 2023 年 8 月 10 日 |
---|---|
0.1.8 | 2023 年 8 月 9 日 |
0.1.7 | 2023 年 7 月 29 日 |
0.1.6 | 2023 年 2 月 22 日 |
#306 in #automatic
在 2 crates 中使用
11KB
263 行
gotcha
提供一个特色网页框架
旨在
- axum 的所有功能
- 自动生成 Swagger API
- 内置消息机制
- 基于环境的配置系统,支持环境解析器
${ANY_ENV_VAR}
和路径变量${app.database.name}
由 yaac 提供支持 - 日志系统
- 可选 Prometheus 集成
- 基于 sqlx 的魔法 ORM
- 基于 cron 的任务系统
开始使用
将依赖项添加到 Cargo.toml
gotcha = {version = "0.1"}
tokio = {version = "1", features = ["macros", 'rt-multi-thread']}
serde = {version="1", features=["derive"]}
use serde::Deserialize;
use gotcha::{get, GotchaApp, GotchaConfigLoader, Responder, State};
use gotcha::axum::extract::FromRef;
pub(crate) async fn hello_world(_state: State<Config>) -> impl Responder {
"hello world"
}
#[derive(Debug, Deserialize, Clone)]
pub(crate) struct Config {}
#[tokio::main]
async fn main() {
let config: Config = GotchaConfigLoader::load(None);
GotchaApp::new().get("/", hello_world)
.data(config)
.done()
.serve("127.0.0.1", 8000).await
}
依赖项
~18–30MB
~522K SLoC