情景:根据一个数组,向axum中注册路由
数组结构: Vec<Vec>
let route_vec = [["get","/api/v1","test-v1"],["post","/api/v2","test-v2"]]
let empty_route = axum::Router::new()
// 此处为示例代码,应为程序根据数组route_vec自动实现链式调用
let filled_route = empty_route
.route(&route_vec[0][1],get(||async {&route_vec[0][2]}))
.route(&route_vec[1][1],post(||async {&route_vec[1][2]}))
大概就是想实现类似上面的功能,数组会不定,尝试过宏和迭代器,以失败告终。
// 这是一个简单版本的失败实现,route_vec实际从其他接口获取,二维数组数量不定。
let route_vec = [["/api/v1","test-v1"],["/api/v2","test-v2"]]
let empty_route = axum::Router::new();
route_vec.iter().for_each(|item| {
let filled_route = empty_route.route(&item[0], get(|| async { &item[1] }));
});
axum::Server::bind(&addr)
.serve(filled_route.into_make_service())
.await
.unwrap();
1
共 5 条评论, 1 页
评论区
写评论就是这个样子,感谢,学习了。
--
👇
johnmave126: 这意思?
学到了
--
👇
johnmave126: 这意思?
这意思?
我感觉不能,因为Router是模板参数嵌套的类型,最多用过程宏配合vec生成。
--
👇
adm1n1str00t: 前辈,请问假如数组是通过其他api获取的,我只能知道类型的话,可以根据二维数组数量自行去调用
.route()
吗--
👇
Bai-Jinlin: 用数组能整,就是有点麻烦。
前辈,请问假如数组是通过其他api获取的,我只能知道类型的话,可以根据二维数组数量自行去调用
.route()
吗--
👇
Bai-Jinlin: 用数组能整,就是有点麻烦。