# AutoBro Backend API сервер для хранения и управления данными об автомобилях. ## Структура проекта - **main.py** - основной файл с API эндпоинтами - **models.py** - модели SQLAlchemy для базы данных - **schemas.py** - схемы Pydantic для валидации данных - **database.py** - настройка подключения к базе данных - **crud.py** - функции для CRUD операций - **auth.py** - функции для JWT авторизации - **create_admin.py** - скрипт для создания первого админа ## Запуск проекта 1. Установите зависимости: ```bash pip install -r requirements.txt ``` 2. Создайте первого администратора: ```bash python create_admin.py --username admin --password your_password ``` 3. Запустите сервер: ```bash uvicorn main:app --reload ``` Сервер будет доступен по адресу http://localhost:8000 ## JWT Авторизация Для доступа к API необходима JWT авторизация. Вот как она работает: 1. Получите токен доступа, отправив POST-запрос к `/token` с вашими учетными данными: ```bash curl -X POST http://localhost:8000/token -d "username=admin&password=your_password" -H "Content-Type: application/x-www-form-urlencoded" ``` 2. Используйте полученный токен для доступа к защищенным эндпоинтам: ```bash curl -X GET http://localhost:8000/cars -H "Authorization: Bearer your_token_here" ``` ## API эндпоинты - **POST /token** - получить JWT токен (авторизация) - **POST /admins** - создать нового администратора (только для админов) - **GET /users/me** - получить информацию о текущем пользователе - **GET /cars** - получить список всех автомобилей - **GET /cars/{car_id}** - получить информацию о конкретном автомобиле - **POST /cars** - добавить новый автомобиль - **PUT /cars/{car_id}** - обновить информацию об автомобиле - **DELETE /cars/{car_id}** - удалить автомобиль ## Документация API После запуска сервера документация доступна по адресам: - Swagger UI: http://localhost:8000/docs - ReDoc: http://localhost:8000/redoc