/
main.rs
46 lines (37 loc) · 971 Bytes
/
main.rs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
use axum::{
http::{header, HeaderValue, StatusCode},
response::IntoResponse,
routing::get,
Json, Router,
};
use dotenv::dotenv;
use tower_http::set_header::SetResponseHeaderLayer;
mod models_common;
mod server;
use self::models_common::Message;
pub async fn plaintext() -> &'static str {
"Hello, World!"
}
pub async fn json() -> impl IntoResponse {
let message = Message {
message: "Hello, World!",
};
(StatusCode::OK, Json(message))
}
#[tokio::main]
async fn main() {
dotenv().ok();
let server_header_value = HeaderValue::from_static("Axum");
let app = Router::new()
.route("/plaintext", get(plaintext))
.route("/json", get(json))
.layer(SetResponseHeaderLayer::if_not_present(
header::SERVER,
server_header_value,
));
server::builder()
.http1_pipeline_flush(true)
.serve(app.into_make_service())
.await
.unwrap();
}