/
aastray
/
StudentPart
Обзор
Документация
Войти
/
aastray
/
StudentPart
Код
Запросы
0
Задачи
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
API-lib/src/controllers/base.py
78 строк
3 KB
aastray
Реализован функционал загрузки файлов и просмотра документов, удалены базовые эндпоинты, обновлена документация
10 янв 2026, 15:38
10 янв 2026, 15:38
4d47c55
Код
Авторство
О чём код?
""" Базовый роутер для обязательных эндпоинтов всех цифровых двойников. Эти эндпоинты должны быть реализованы в каждом цифровом двойнике: - GET /description - описание цифрового двойника - GET /endpoints - список доступных эндпоинтов - GET /GetForm - получение формы по URL эндпоинта """ from fastapi import APIRouter, HTTPException, Query from src.services import ( get_description as get_description_service, get_endpoints as get_endpoints_service, get_form as get_form_service ) router = APIRouter( prefix="", tags=["Base"], responses={404: {"description": "Not found"}}, ) @router.get("/description", summary="Получить описание цифрового двойника") async def get_description(): """ Возвращает описание цифрового двойника (название и описание). Обязательный эндпоинт для всех цифровых двойников. """ try: return get_description_service() except Exception as e: raise HTTPException( status_code=500, detail=f"Ошибка при получении описания: {str(e)}" ) @router.get("/endpoints", summary="Получить список доступных эндпоинтов") async def get_endpoints(): """ Возвращает список всех доступных эндпоинтов цифрового двойника. Обязательный эндпоинт для всех цифровых двойников. """ try: return get_endpoints_service() except Exception as e: raise HTTPException( status_code=500, detail=f"Ошибка при получении списка эндпоинтов: {str(e)}" ) @router.get("/GetForm", summary="Получить форму для эндпоинта") async def get_form(url: str = Query(..., description="URL эндпоинта для получения формы")): """ Возвращает форму (схему данных) для указанного эндпоинта. Обязательный эндпоинт для всех цифровых двойников. Args: url: URL эндпоинта, для которого нужно получить форму Returns: Схема формы с полями для ввода данных """ try: result = get_form_service(url) if result is None: raise HTTPException( status_code=404, detail=f"Форма для эндпоинта '{url}' не найдена" ) return result except HTTPException: raise except Exception as e: raise HTTPException( status_code=500, detail=f"Ошибка при получении формы: {str(e)}" )