From b5960dffbd7151c2eedc0e897f94f7b1691c2a39 Mon Sep 17 00:00:00 2001 From: Adam Carpenter Date: Sun, 3 May 2020 22:58:13 -0400 Subject: started actix-web rust project for api --- dichroism/src/main.rs | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) (limited to 'dichroism/src') 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 } -- cgit v1.2.3