有没有办法在 actix-web 中拆分服务器路由声明?
Is there a way to split server routes declaration in actix-web?
我现在有以下服务器声明
let server = HttpServer::new(move || {
App::new()
.app_data(actix_web::web::Data::new(pool.clone()))
.service(ping)
.service(stock::controller::get_all)
.service(stock::controller::find_one)
.service(stock::controller::insert_one)
.service(stock::controller::insert_many)
})
.bind(("127.0.0.1", 7777))?
.run();
我感觉加其他路由的时候会很难控制。有没有办法拆分它,这样我就可以得到类似
的东西
App::new()
.app_data(actix_web::web::Data::new(pool.clone()))
.service(ping)
.service(stock::controller::routes)
并让路由函数添加第一个代码示例中声明的所有服务?
您可以创建路由范围:
HttpServer::new(|| {
let stocks_controller = actix_web::web::scope("/stocks")
.service(get_all)
.service(find_one)
.service(insert_one);
App::new()
.service(ping)
.service(stocks_controller)
})
更多信息here。
我现在有以下服务器声明
let server = HttpServer::new(move || {
App::new()
.app_data(actix_web::web::Data::new(pool.clone()))
.service(ping)
.service(stock::controller::get_all)
.service(stock::controller::find_one)
.service(stock::controller::insert_one)
.service(stock::controller::insert_many)
})
.bind(("127.0.0.1", 7777))?
.run();
我感觉加其他路由的时候会很难控制。有没有办法拆分它,这样我就可以得到类似
的东西App::new()
.app_data(actix_web::web::Data::new(pool.clone()))
.service(ping)
.service(stock::controller::routes)
并让路由函数添加第一个代码示例中声明的所有服务?
您可以创建路由范围:
HttpServer::new(|| {
let stocks_controller = actix_web::web::scope("/stocks")
.service(get_all)
.service(find_one)
.service(insert_one);
App::new()
.service(ping)
.service(stocks_controller)
})
更多信息here。