use axum::{routing::get, Json, Router};
use serde::Serialize;
use std::net::SocketAddr;
#[derive(Serialize)]
struct Message {
message: String,
}
#[tokio::main]
async fn main() {
let port: u16 = std::env::var("PORT")
.unwrap_or_else(|_| "3000".to_string())
.parse()
.expect("PORT must be a number");
let app = Router::new()
.route("/", get(root))
.route("/health", get(health));
let addr = SocketAddr::from(([0, 0, 0, 0], port));
println!("Listening on {}", addr);
let listener = tokio::net::TcpListener::bind(addr).await.unwrap();
axum::serve(listener, app).await.unwrap();
}
async fn root() -> Json<Message> {
Json(Message {
message: "Hello from Rustfinity Cloud!".to_string(),
})
}
async fn health() -> &'static str {
"ok"
}