Backend API для приложения CSR Assistant на FastAPI.
- Python 3.8+
- PostgreSQL
- Виртуальное окружение (venv)
-
Создайте виртуальное окружение (если еще не создано):
python -m venv venv
-
Активируйте виртуальное окружение:
- Windows (CMD):
venv\Scripts\activate.bat - Windows (PowerShell):
venv\Scripts\Activate.ps1 - Linux/Mac:
source venv/bin/activate
- Windows (CMD):
-
Установите зависимости:
pip install -r requirements.txt
-
Создайте файл
.env.devв корне проекта со следующим содержимым:database_url=postgresql://username:password@localhost:5432/dbname secret_key=your-secret-key-here-minimum-32-characters-long access_token_expire_minutes=60
Важно: Замените
username,password,localhost,5432иdbnameна ваши реальные данные PostgreSQL. -
Для генерации секретного ключа можно использовать:
import secrets print(secrets.token_urlsafe(32))
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000python -m uvicorn app.main:app --reload --host 0.0.0.0 --port 8000Сервер будет доступен по адресу: http://localhost:8000
После запуска сервера доступна интерактивная документация:
- Swagger UI: http://localhost:8000/docs
- ReDoc: http://localhost:8000/redoc
Важно: Клиент должен обращаться к бэкенду по адресу http://localhost:8000, а не к своему собственному порту.
Настройте прокси в vite.config.js или vite.config.ts:
export default {
server: {
proxy: {
'/api': {
target: 'http://localhost:8000',
changeOrigin: true,
}
}
}
}Тогда клиент может использовать относительные пути: /api/v1/auth/token
В клиентском коде (например, в authApi.ts) установите базовый URL:
const API_BASE_URL = 'http://localhost:8000';
// Пример использования:
fetch(`${API_BASE_URL}/api/v1/auth/token`, {
method: 'POST',
// ...
});.
├── app/
│ ├── api/ # API endpoints
│ │ └── v1/ # API версия 1
│ ├── core/ # Основные настройки (config, security)
│ ├── db/ # Настройки базы данных
│ ├── models/ # SQLAlchemy модели
│ ├── schemas/ # Pydantic схемы
│ └── main.py # Точка входа приложения
├── alembic/ # Миграции базы данных
├── requirements.txt # Зависимости Python
└── .env.dev # Переменные окружения (создать вручную)
Убедитесь, что:
- Бэкенд запущен на порту 8000
- Клиент обращается к правильному URL (
http://localhost:8000, а неhttp://localhost:5173) - Настроен прокси в Vite (если используется) или правильный базовый URL в клиентском коде
Проверьте:
- Существует ли файл
.env.devс правильными настройками - Запущена ли база данных PostgreSQL
- Правильно ли указан
database_urlв.env.dev - Созданы ли таблицы в базе данных (они создаются автоматически при запуске)
Откройте в браузере: http://localhost:8000/health
Должен вернуться ответ: {"status": "ok"}
Для разработки используйте флаг --reload при запуске uvicorn, чтобы сервер автоматически перезагружался при изменении кода.
Для работы с миграциями используется Alembic. См. документацию Alembic для подробностей.