diff options
Diffstat (limited to 'dichroism/src')
| -rw-r--r-- | dichroism/src/main.rs | 29 | 
1 files changed, 27 insertions, 2 deletions
diff --git a/dichroism/src/main.rs b/dichroism/src/main.rs index e7a11a9..e4bb217 100644 --- a/dichroism/src/main.rs +++ b/dichroism/src/main.rs @@ -1,3 +1,28 @@ -fn main() { -    println!("Hello, world!"); +use actix_web::{web, App, HttpRequest, HttpServer, Responder}; +use listenfd::ListenFd; + +async fn greet(req: HttpRequest) -> impl Responder { +    let name = req.match_info().get("name").unwrap_or("World"); +    format!("Hello {}!", &name) +} + +async fn index(_: HttpRequest) -> impl Responder { +    "Hello, this is an API. If you're looking for the web app, try port 443.".to_string() +} + +#[actix_rt::main] +async fn main() -> std::io::Result<()> { +    let mut listenfd = ListenFd::from_env(); +    let mut server = HttpServer::new(|| { +        App::new() +            .route("/", web::get().to(index)) +            .route("/{name}", web::get().to(greet)) +    }); + +    server = if let Some(l) = listenfd.take_tcp_listener(0).unwrap() { +        server.listen(l)? +    } else { +        server.bind("127.0.0.1:8000")? +    }; +    server.run().await  }  |