use axum::{Router, routing::get}; use std::net::SocketAddr; use tokio::net::TcpListener; use tracing_subscriber::{layer::SubscriberExt, util::SubscriberInitExt}; // Объявление модулей pub mod config; pub mod handlers; pub mod models; pub mod services; #[tokio::main] async fn main() { // Инициализация логгера tracing_subscriber::registry() .with(tracing_subscriber::EnvFilter::new( std::env::var("RUST_LOG").unwrap_or_else(|_| "info".into()), )) .init(); // Загрузка переменных окружения dotenvy::dotenv().ok(); // Маршрутизация let app = Router::new() .route("/", get(handlers::index)) .route("/api/redmine", get(handlers::test_redmine)) .route("/api/redmine/tasks", get(handlers::get_redmine_tasks)) .route("/api/bitrix/tasks", get(handlers::get_bitrix_tasks)); // Запуск сервера (axum 0.7 API) let addr = SocketAddr::from(([127, 0, 0, 1], 3000)); tracing::info!("Listening on {}", addr); let listener = TcpListener::bind(addr).await.unwrap(); axum::serve(listener, app).await.unwrap(); }