Actix-Web路由如何实现处理?

摘要:一、路由 上一篇文章,介绍了Actix-Web入门知识,链接如下:https:www.cnblogs.comxiao987334176p19271995 接下来介绍路由 基础路由 修改主代码 srcmain.rs use act
一、路由 上一篇文章,介绍了Actix-Web入门知识,链接如下:https://www.cnblogs.com/xiao987334176/p/19271995 接下来介绍路由 基础路由 修改主代码 src/main.rs use actix_web::{get, post, put, delete, web, HttpResponse}; use serde::{Deserialize, Serialize}; #[derive(Serialize, Deserialize)] struct User { id: u32, name: String, email: String, } // GET 请求 #[get("/users")] async fn get_users() -> HttpResponse { let users = vec![ User { id: 1, name: "Alice".to_string(), email: "alice@example.com".to_string(), }, User { id: 2, name: "Bob".to_string(), email: "bob@example.com".to_string(), }, ]; HttpResponse::Ok().json(users) } // GET 请求(带路径参数) #[get("/users/{id}")] async fn get_user(path: web::Path<u32>) -> HttpResponse { let user_id = path.into_inner(); let user = User { id: user_id, name: "Alice".to_string(), email: "alice@example.com".to_string(), }; HttpResponse::Ok().json(user) } // POST 请求(创建资源) #[post("/users")] async fn create_user(user: web::Json<User>) -> HttpResponse { println!("创建用户: {:?}", user.name); HttpResponse::Created().json(user.into_inner()) } // PUT 请求(更新资源) #[put("/users/{id}")] async fn update_user( path: web::Path<u32>, user: web::Json<User>, ) -> HttpResponse { let user_id = path.into_inner(); println!("更新用户 {}: {:?}", user_id, user.name); HttpResponse::Ok().json(user.into_inner()) } // DELETE 请求 #[delete("/users/{id}")] async fn delete_user(path: web::Path<u32>) -> HttpResponse { let user_id = path.into_inner(); println!("删除用户: {}", user_id); HttpResponse::NoContent().finish() } 以上是示例代码,看不出效果。
阅读全文