From 66e677a8543285ed424d616092fb09c518b32fa4 Mon Sep 17 00:00:00 2001 From: Santo Cariotti Date: Sun, 21 Aug 2022 18:32:56 +0200 Subject: Init --- src/main.rs | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 src/main.rs (limited to 'src/main.rs') diff --git a/src/main.rs b/src/main.rs new file mode 100644 index 0000000..ab463b8 --- /dev/null +++ b/src/main.rs @@ -0,0 +1,48 @@ +mod errors; +mod logger; + +use axum::{http::header, routing::get, Json, Router}; +use serde::Serialize; +use tower_http::sensitive_headers::SetSensitiveHeadersLayer; + +#[tokio::main] +async fn main() { + let app = create_app().await; + + let addr: String = + std::env::var("ALLOWED_HOST").unwrap_or_else(|_| "localhost:3000".to_string()); + tracing::info!("Listening on {}", addr); + + axum::Server::bind(&"127.0.0.1:3000".parse().unwrap()) + .serve(app.into_make_service()) + .await + .unwrap(); +} + +async fn create_app() -> Router { + logger::setup(); + + Router::new() + .route("/", get(hej)) + // Mark the `Authorization` request header as sensitive so it doesn't + // show in logs. + .layer(SetSensitiveHeadersLayer::new(std::iter::once( + header::AUTHORIZATION, + ))) +} + +// Example root which says hi +async fn hej() -> Result, errors::Error> { + Ok(Json(Hej::new("hej verden".to_string()))) +} + +#[derive(Debug, Serialize)] +struct Hej { + hello: String, +} + +impl Hej { + fn new(hello: String) -> Self { + Self { hello } + } +} -- cgit v1.2.3-18-g5258