38 lines
1.2 KiB
Rust
38 lines
1.2 KiB
Rust
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();
|
|
}
|