Actix Example
An actix app comes with a URL routing, that lets you match on URLs and invoke individual handlers, and provides a powerful system, that extracts data from the incoming HTTP request and passes it to your view functions.
use actix_web::{get, web, Result}; use serde::Deserialize; #[derive(Deserialize)] struct Info { user_id: u32, friend: String, } /// extract path info using serde #[get("/users/{user_id}/{friend}")] // <- define path parameters async fn index(info: web::Path<Info>) -> Result<String> { Ok(format!( "Welcome {}, user_id {}!", info.friend, info.user_id )) } #[actix_web::main] async fn main() -> std::io::Result<()> { use actix_web::{App, HttpServer}; HttpServer::new(|| App::new().service(index)) .bind("127.0.0.1:8080")? .run() .await }