2 个不稳定版本
0.2.0 | 2023 年 12 月 24 日 |
---|---|
0.1.0 | 2023 年 12 月 20 日 |
#2294 in 网页编程
35KB
763 行
More DI for Axum
More DI 是一个 Rust 的依赖注入 (DI) 库。此库为 axum 网页框架提供额外的 DI 扩展。
你可能正在寻找
Axum 中的依赖注入
考虑以下结构。
use di::*;
#[injectable]
struct Person;
impl Person {
fn speak(&self) -> &str {
"Hello world!"
}
}
现在可以将这些信息组合成一个网页应用
use crate::*;
use di::*;
use di_axum::*;
async fn say_hello(Inject(person): Inject<Person>) -> String {
person.speak().to_owned()
}
#[tokio::main]
async fn main() {
let provider = ServiceCollection::new()
.add(Person::scoped())
.build_provider()
.unwrap();
let app = Router::new()
.route("/hello", get(say_hello))
.with_provider(provider);
let listener = TcpListener::bind("127.0.0.1:5000").await.unwrap();
println!("Now listening on: {}", listener.local_addr().unwrap());
axum::serve(listener, app).await.unwrap();
}
许可证
本项目采用 MIT 许可证。
依赖项
~4MB
~82K SLoC