use actix_web::{get, post, web, App, HttpResponse, HttpServer, Responder}; use serde::{Deserialize, Serialize}; // 定义响应数据结构 #[derive(Serialize)] struct GreetingResponse { message: String, } // 定义请求数据结构 #[derive(Deserialize)] struct UserRequest { name: String, age: u8, } // 健康检查端点 #[get("/health")] async fn health_check() -> impl Responder { HttpResponse::Ok().body("Service is healthy") } // 根路径处理 #[get("/")] async fn index() -> impl Responder { HttpResponse::Ok().body("Welcome to Rust Web Backend!") } // 带参数的问候端点 #[get("/greet/{name}")] async fn greet(name: web::Path) -> impl Responder { let response = GreetingResponse { message: format!("Hello, {}!", name), }; HttpResponse::Ok().json(response) } // POST 请求处理 #[post("/user")] async fn create_user(user: web::Json) -> impl Responder { let response = GreetingResponse { message: format!("Created user: {} (age {})", user.name, user.age), }; HttpResponse::Created().json(response) } #[actix_web::main] async fn main() -> std::io::Result<()> { println!("Starting server at http://localhost:8080"); HttpServer::new(|| { App::new() .service(health_check) .service(index) .service(greet) .service(create_user) }) .bind("0.0.0.0:8080")? .run() .await }