1pub mod handlers;
10pub mod middleware;
11pub mod models;
12pub mod routes;
13pub mod state;
14pub mod error;
15
16pub use routes::create_router;
17pub use state::AppState;
18pub use error::ApiError;
19
20use axum::Router;
21use std::sync::Arc;
22use tower_http::cors::CorsLayer;
23use tower_http::trace::TraceLayer;
24
25pub async fn init_api(state: AppState) -> Router {
27 let cors = CorsLayer::permissive();
28 let trace = TraceLayer::new_for_http();
29
30 Router::new()
31 .nest("/api/v1", create_router(state))
32 .layer(cors)
33 .layer(trace)
34}