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