refactor: 整理路由配置,分离公开接口与受保护接口
- 登录和天气详情接口移至公开区域
- 其他接口统一在 web::scope("") 下受 JWT middleware 保护
- 静态文件和健康检查移至最后
- 为 actix-ratelimit 兼容性问题做准备(当前无法在 actix-web 4.x 使用)
注意:Rate Limiting 功能暂未实现(actix-ratelimit 与 actix-web 4.x 不兼容)
This commit is contained in:
28
src/main.rs
28
src/main.rs
@@ -717,22 +717,26 @@ fn create_server_config(
|
||||
.app_data(web::Data::new(pool))
|
||||
.app_data(web::Data::new(http_client))
|
||||
.app_data(web::Data::new(app_state))
|
||||
.service(web::resource("/static/{tail:.*}").route(web::get().to(serve_static_files)))
|
||||
.service(health_check)
|
||||
.service(login)
|
||||
.service(get_weather_details)
|
||||
// API 接口
|
||||
.service(login) // #[post("/api/login")]
|
||||
.service(get_weather_details) // #[get("/api/weather/details")]
|
||||
// 受保护接口(JWT)
|
||||
.service(
|
||||
web::scope("")
|
||||
.wrap(from_fn(jwt_middleware))
|
||||
.service(post_weather_data)
|
||||
.service(get_weather_brief)
|
||||
.service(generate_temp_token_handler)
|
||||
.service(delete_weather)
|
||||
.service(get_current_user_profile)
|
||||
.service(save_user_profile)
|
||||
.service(admin_get_user)
|
||||
.service(admin_update_user_payment),
|
||||
.service(post_weather_data) // #[post("/api/post-weather-data")]
|
||||
.service(get_weather_brief) // #[get("/api/weather")]
|
||||
.service(generate_temp_token_handler) // #[post("/api/generate-temp-token/{resource_id}")]
|
||||
.service(delete_weather) // #[delete("/api/weather/delete/{id}")]
|
||||
.service(get_current_user_profile) // #[get("/api/user/profile")]
|
||||
.service(save_user_profile) // #[put("/api/user/profile")]
|
||||
.service(admin_get_user) // #[get("/api/admin/users/{id}")]
|
||||
.service(admin_update_user_payment) // #[put("/api/admin/users/{id}/payment")]
|
||||
)
|
||||
// 静态文件
|
||||
.service(web::resource("/static/{tail:.*}").route(web::get().to(serve_static_files)))
|
||||
// 健康检查
|
||||
.service(health_check)
|
||||
}
|
||||
|
||||
#[actix_web::main]
|
||||
|
||||
Reference in New Issue
Block a user