summaryrefslogtreecommitdiff
path: root/dichroism/src
diff options
context:
space:
mode:
Diffstat (limited to 'dichroism/src')
-rw-r--r--dichroism/src/main.rs29
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
}