use actix_web::{middleware, web, App, HttpRequest, HttpResponse, HttpServer};
use std::env;
#[actix_web::main]
async fn main() -> std::io::Result<()> {
env_logger::init_from_env(env_logger::Env::new().default_filter_or("info"));
let port: u16 = env::var("SERVICE_PORT")
.ok()
.and_then(|s| s.parse().ok())
.unwrap_or(8000);
log::info!("Starting HTTP server at http://0.0.0.0:{port}.");
HttpServer::new(|| {
App::new()
.wrap(middleware::Logger::default())
.service(web::resource("/index.html").to(|| async { "Hello world!" }))
.service(web::resource("/").to(index))
.service(web::resource("/health").to(health_check_handler))
})
.bind(("0.0.0.0", port))?
.run()
.await
}
async fn index(req: HttpRequest) -> &'static str {
println!("REQ: {req:?}");
"Hello world!"
}
async fn health_check_handler() -> HttpResponse {
HttpResponse::Ok().json("Healthy!")
}
#[cfg(test)]
mod test;