29 lines
803 B
Rust
29 lines
803 B
Rust
use std::net::SocketAddr;
|
|
|
|
use tokio::net::TcpListener;
|
|
use tower::make::Shared;
|
|
|
|
use backend::{routes, utils::bootstrap::init_component};
|
|
|
|
#[tokio::main]
|
|
async fn main() -> anyhow::Result<()> {
|
|
let state = init_component("api", None).await?;
|
|
let server_host = state.config.server_host.clone();
|
|
let server_port = state.config.server_port;
|
|
tracing::info!(
|
|
component = "api",
|
|
server_host = %server_host,
|
|
server_port,
|
|
"starting api server"
|
|
);
|
|
|
|
let router = routes::create_router(state.as_ref().clone());
|
|
|
|
let addr: SocketAddr = format!("{}:{}", server_host, server_port).parse()?;
|
|
let listener = TcpListener::bind(addr).await?;
|
|
tracing::info!("listening on {}", addr);
|
|
|
|
axum::serve(listener, Shared::new(router)).await?;
|
|
Ok(())
|
|
}
|