refactor: 整理路由配置,分离公开接口与受保护接口

- 登录和天气详情接口移至公开区域
- 其他接口统一在 web::scope("") 下受 JWT middleware 保护
- 静态文件和健康检查移至最后
- 为 actix-ratelimit 兼容性问题做准备(当前无法在 actix-web 4.x 使用)

注意:Rate Limiting 功能暂未实现(actix-ratelimit 与 actix-web 4.x 不兼容)
This commit is contained in:
2026-04-15 11:05:21 +08:00
parent 338871796a
commit 6b871ca4d6

View File

@@ -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]