Initial
This commit is contained in:
11
src/api/mod.rs
Normal file
11
src/api/mod.rs
Normal file
@@ -0,0 +1,11 @@
|
||||
use axum::{Router, http::StatusCode, routing::get};
|
||||
|
||||
async fn root() -> (StatusCode, &'static str) {
|
||||
(StatusCode::OK, "We Good twin :3c")
|
||||
}
|
||||
|
||||
pub fn register_routes() -> Router {
|
||||
let router = Router::new().route("/", get(root));
|
||||
|
||||
Router::new().nest("/api", router)
|
||||
}
|
||||
30
src/main.rs
Normal file
30
src/main.rs
Normal file
@@ -0,0 +1,30 @@
|
||||
use axum::Router;
|
||||
use tower::ServiceBuilder;
|
||||
use tower_http::{services::ServeDir, trace::TraceLayer};
|
||||
use tracing::{info, level_filters::LevelFilter};
|
||||
use tracing_subscriber::FmtSubscriber;
|
||||
|
||||
mod api;
|
||||
mod pages;
|
||||
|
||||
#[tokio::main]
|
||||
async fn main() {
|
||||
let sub = FmtSubscriber::builder()
|
||||
.with_max_level(LevelFilter::DEBUG)
|
||||
.finish();
|
||||
tracing::subscriber::set_global_default(sub).unwrap();
|
||||
|
||||
info!("Server starting");
|
||||
|
||||
let app = Router::new()
|
||||
.merge(pages::register_routes())
|
||||
.merge(api::register_routes())
|
||||
.fallback_service(ServiceBuilder::new().service(ServeDir::new("res")))
|
||||
.layer(ServiceBuilder::new().layer(TraceLayer::new_for_http()));
|
||||
|
||||
let laddr = "0.0.0.0:8080";
|
||||
|
||||
let sock = tokio::net::TcpListener::bind(laddr).await.unwrap();
|
||||
info!("Listening on http://{laddr}");
|
||||
axum::serve(sock, app).await.unwrap();
|
||||
}
|
||||
12
src/pages/index.rs
Normal file
12
src/pages/index.rs
Normal file
@@ -0,0 +1,12 @@
|
||||
use askama::Template;
|
||||
use axum::{http::StatusCode, response::Html};
|
||||
|
||||
#[derive(Debug, Template, Clone)]
|
||||
#[template(path = "index.html")]
|
||||
pub struct PageTemplate {}
|
||||
|
||||
pub async fn page() -> (StatusCode, Html<String>) {
|
||||
let page = PageTemplate {};
|
||||
|
||||
(StatusCode::OK, Html(page.render().unwrap()))
|
||||
}
|
||||
8
src/pages/mod.rs
Normal file
8
src/pages/mod.rs
Normal file
@@ -0,0 +1,8 @@
|
||||
use askama::Template;
|
||||
use axum::{Router, routing::get};
|
||||
|
||||
pub mod index;
|
||||
|
||||
pub fn register_routes() -> Router {
|
||||
Router::new().route("/", get(index::page))
|
||||
}
|
||||
Reference in New Issue
Block a user