/
mxtn
/
webapi
Обзор
Документация
Войти
/
mxtn
/
webapi
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/main.rs
48 строк
2 KB
Max Talbushkin
First commit
10 июл 2025, 15:09
10 июл 2025, 15:09
cfeaa95
Код
Авторство
О чём код?
use actix_web::{web, App, HttpServer}; use dotenv::dotenv; use sqlx::postgres::PgPoolOptions; use std::env; // Подключаем модули приложения mod controllers; mod errors; mod middleware; mod models; mod repositories; mod services; #[actix_web::main] async fn main() -> std::io::Result<()> { // Загружаем переменные окружения из .env dotenv().ok(); // Получаем URL базы данных из переменной окружения let database_url = env::var("DATABASE_URL").expect("DATABASE_URL не установлена"); // Получаем секрет JWT из переменной окружения let jwt_secret = env::var("JWT_SECRET").expect("JWT_SECRET не установлен"); // Создаем пул соединений с Postgres let pool = PgPoolOptions::new() .max_connections(5) .connect(&database_url) .await .expect("Не удалось подключиться к базе данных"); // Запускаем HTTP-сервер на порту 8080 HttpServer::new(move || { App::new() // Регистрируем пул БД и секрет JWT как данные приложения .app_data(web::Data::new(pool.clone())) .app_data(web::Data::new(jwt_secret.clone())) // Добавляем middleware для проверки JWT .wrap(middleware::jwt::JwtMiddleware) // Регистрируем маршруты API .service(controllers::user::create_user) .service(controllers::user::login_user) .service(controllers::user::update_user) }) .bind(("127.0.0.1", 8080))? .run() .await }