/
liquid-g
/
liquid-code
Обзор
Документация
Войти
/
liquid-g
/
liquid-code
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/liquidcode/contracts/request.py
57 строк
2 KB
User
0.2.0 - начат полный рефакторинг фреймфорка
30 июн 2026, 10:45
30 июн 2026, 10:45
0f20eda
Код
Авторство
О чём код?
""" Абстрактный класс Request для работы с запросами в любом протоколе. """ from abc import ABC, abstractmethod from typing import Any, Dict class Request(ABC): """ Базовый класс для всех типов запросов (HTTP, CLI, WebSocket, тестовый). """ @abstractmethod def get_method(self) -> str: """Возвращает метод запроса (GET, POST, CLI, etc).""" pass @abstractmethod def get_path(self) -> str: """Возвращает путь запроса (для HTTP) или команду (для CLI).""" pass @abstractmethod def get_headers(self) -> Dict[str, str]: """Возвращает заголовки запроса (для HTTP) или метаданные.""" pass @abstractmethod def get_body(self) -> bytes: """Возвращает тело запроса (байты).""" pass @abstractmethod def get_query_params(self) -> Dict[str, str]: """Возвращает параметры запроса (из URL для HTTP, аргументы для CLI).""" pass @abstractmethod def get_route_params(self) -> Dict[str, str]: """Возвращает параметры, извлечённые из маршрута (например, {id}).""" pass @abstractmethod def set_route_params(self, params: Dict[str, str]) -> None: """Устанавливает параметры маршрута (заполняется в роутере).""" pass @abstractmethod def get_attr(self, key: str, default: Any = None) -> Any: """Возвращает пользовательский атрибут запроса (например, для middleware).""" pass @abstractmethod def set_attr(self, key: str, value: Any) -> None: """Устанавливает пользовательский атрибут запроса.""" pass