diff --git a/docs/code_snippets/router/snippet.py b/docs/code_snippets/router/snippet.py index cbd23d7..a8e1116 100644 --- a/docs/code_snippets/router/snippet.py +++ b/docs/code_snippets/router/snippet.py @@ -1,10 +1,7 @@ -from argenta.command import Command -from argenta.router import Router +from argenta import Command, Response, Router user_router = Router(title="User Management") - @user_router.command(Command("add-user", description="Adds a new user")) -def add_user_handler(response): - # Логика добавления пользователя +def add_user_handler(response: Response): print("User added successfully!") diff --git a/docs/root/api/orchestrator/index.rst b/docs/root/api/orchestrator/index.rst index 47c5594..296f05c 100644 --- a/docs/root/api/orchestrator/index.rst +++ b/docs/root/api/orchestrator/index.rst @@ -3,9 +3,9 @@ Orchestrator ==================== -``Orchestrator`` — это высокоуровневый компонент, который управляет жизненным циклом приложения. Его главная задача — инициализация и конфигурация окружения, включая внедрение зависимостей (DI), парсинг аргументов командной строки и запуск основного цикла `App`. +``Orchestrator`` — это высокоуровневый компонент, который конфигурирует и оркестрирует приложение, парсер командной строки, ``di`` и остальные компоненты, находящиеся по иерархии на уровне с ``App``. -В то время как `App` отвечает за логику интерактивной сессии (ввод команд, маршрутизация), `Orchestrator` подготавливает окружение для его работы и служит точкой входа в приложение. +В то время как ``App`` отвечает за логику интерактивной сессии (ввод команд, маршрутизация), ``Orchestrator`` подготавливает окружение для его работы и служит точкой входа в приложение. ----- @@ -27,9 +27,9 @@ Orchestrator Создаёт и конфигурирует экземпляр ``Orchestrator``. -* ``arg_parser``: Экземпляр `ArgParser`, отвечающий за парсинг аргументов командной строки при запуске скрипта (не путать с командами в интерактивном режиме). -* ``custom_providers``: Список пользовательских провайдеров `dishka.Provider` для добавления ваших сервисов (например, подключений к БД или API-клиентов) в DI-контейнер. -* ``auto_inject_handlers``: Если `True` (по умолчанию), `dishka` автоматически внедрит зависимости в обработчики команд, инспектируя их сигнатуры. +* ``arg_parser``: Экземпляр ``ArgParser``, отвечающий за парсинг аргументов командной строки при запуске скрипта (не путать с командами в интерактивном режиме). +* ``custom_providers``: Список пользовательских провайдеров ``dishka.Provider`` для добавления ваших сервисов (например, подключений к БД или API-клиентов) в DI-контейнер. +* ``auto_inject_handlers``: Если **True** (по умолчанию), ``dishka`` автоматически внедрит зависимости в обработчики команд, инспектируя их сигнатуры. ----- @@ -38,25 +38,18 @@ Orchestrator .. py:method:: start_polling(self, app: App) -> None - Это главный метод, который запускает приложение. Он выполняет следующие шаги: + Это главный метод, который запускает приложение. Он запускает бесконечный цикл ввода -> вывода. - 1. **Настройка DI**: Создаёт DI-контейнер на основе системного провайдера (предоставляет `ArgParser`) и пользовательских `custom_providers`. - 2. **Запуск основного цикла**: Запускает бесконечный цикл ожидания и обработки пользовательского ввода. - - :param app: Экземпляр `App`, который будет запущен. + :param app: Экземпляр ``App``, который будет запущен. ----- Назначение и использование ---------------------------- -``Orchestrator`` абстрагирует сложность, связанную с настройкой DI и парсингом стартовых аргументов. Типичный сценарий использования выглядит так: +``Orchestrator`` абстрагирует сложность, связанную с настройкой ``di`` и парсингом стартовых аргументов. Типичный сценарий использования выглядит так. -1. Создайте и настройте экземпляр `App` (добавьте роутеры). -2. Создайте экземпляр `Orchestrator`, передав в него DI-провайдеры. -3. Вызовите `orchestrator.start_polling(app)`, чтобы запустить приложение. - -Такой подход разделяет ответственности: `App` отвечает за логику интерактивной сессии, а `Orchestrator` — за подготовку и запуск окружения. +Такой подход разделяет ответственности: ``App`` отвечает за логику интерактивной сессии, а ``Orchestrator`` — за подготовку окружения и запуск приложения. Пример использования --------------------