1 use axum::{ 2 routing::{get, post}, 3 Router, 4 }; 5 6 use std::net::SocketAddr; 7 use std::env; 8 9 #[tokio::main] 10 async fn main() { 11 env::set_var("RUST_LOG", "info"); 12 env_logger::init(); 13 let app = Router::new() 14 .route("/", get(root)) 15 .route("/on_publish", post(on_publish)) 16 .route("/on_unpublish", post(on_unpublish)) 17 .route("/on_play", post(on_play)) 18 .route("/on_stop", post(on_stop)); 19 20 let addr = SocketAddr::from(([127, 0, 0, 1], 3001)); 21 log::info!("http server listen on: {}", 3001); 22 axum::Server::bind(&addr) 23 .serve(app.into_make_service()) 24 .await 25 .unwrap(); 26 } 27 28 // basic handler that responds with a static string 29 async fn root() -> &'static str { 30 "Hello, World!" 31 } 32 33 async fn on_publish(body: String) { 34 log::info!("on_publish body: {}", body); 35 } 36 37 async fn on_unpublish(body: String) { 38 log::info!("on_unpublish body: {}", body); 39 } 40 41 async fn on_play(body: String) { 42 log::info!("on_play body: {}", body); 43 } 44 45 async fn on_stop(body: String) { 46 log::info!("on_stop body: {}", body); 47 } 48