From 6b871ca4d6cd891f693cb7d75acbc6a13a2a7d28 Mon Sep 17 00:00:00 2001 From: Milky0217 Date: Wed, 15 Apr 2026 11:05:21 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E6=95=B4=E7=90=86=E8=B7=AF?= =?UTF-8?q?=E7=94=B1=E9=85=8D=E7=BD=AE=EF=BC=8C=E5=88=86=E7=A6=BB=E5=85=AC?= =?UTF-8?q?=E5=BC=80=E6=8E=A5=E5=8F=A3=E4=B8=8E=E5=8F=97=E4=BF=9D=E6=8A=A4?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 登录和天气详情接口移至公开区域 - 其他接口统一在 web::scope("") 下受 JWT middleware 保护 - 静态文件和健康检查移至最后 - 为 actix-ratelimit 兼容性问题做准备(当前无法在 actix-web 4.x 使用) 注意:Rate Limiting 功能暂未实现(actix-ratelimit 与 actix-web 4.x 不兼容) --- src/main.rs | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/src/main.rs b/src/main.rs index a6e042f..ddf46b4 100644 --- a/src/main.rs +++ b/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]