(refactor) AppState to state mod
This commit is contained in:
parent
8a03bdee96
commit
5b3c2d4ec7
6 changed files with 92 additions and 14 deletions
20
src/main.rs
20
src/main.rs
|
|
@ -1,28 +1,24 @@
|
|||
// src/main.rs
|
||||
mod route; // Объявляем модуль route (это либо route.rs, либо route/mod.rs)
|
||||
mod db; // Объявляем модуль для работы с БД
|
||||
mod route;
|
||||
mod db;
|
||||
mod state;
|
||||
mod api;
|
||||
|
||||
use std::net::SocketAddr;
|
||||
use sqlx::PgPool;
|
||||
use api::banking::BankingClients;
|
||||
|
||||
|
||||
|
||||
/// Общее состояние приложения, передаётся во все handlers
|
||||
/// Это паттерн Axum: State<AppState> используется в extract'ах
|
||||
#[derive(Clone)]
|
||||
pub struct AppState {
|
||||
pub db_pool: PgPool,
|
||||
}
|
||||
|
||||
#[tokio::main]
|
||||
async fn main() {
|
||||
// 1. Загружаем переменные окружения из .env или secrets (через sops)
|
||||
dotenvy::dotenv().ok();
|
||||
|
||||
// 2. Инициализируем базу данных
|
||||
let db_pool = db::init_pool().await;
|
||||
println!("✅ Database connection pool created successfully.");
|
||||
|
||||
// 3. Создаём общее состояние приложения
|
||||
let app_state = AppState { db_pool };
|
||||
let app_state = AppState::new().await;
|
||||
|
||||
// 4. Конфигурируем роуты (все роуты централизованы в route::router())
|
||||
let app = route::router(app_state);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue