# Справочник API Ниже краткое описание публичных API проекта BotPages. ## BotPages.Core ### `BotPagesApp` - `AddTelegramAdapter(string token)` — регистрирует Telegram адаптер с заданным токеном. - `AddAdapter(string messengerType, IMessengerAdapter adapter)` — регистрирует произвольный адаптер. - `AddMiddleware(IPageMiddleware middleware)` — добавляет middleware в pipeline. - `MapCommand(string template)` — привязать команду к странице. - `MapRoute(string template)` — зарегистрировать маршрут. - `AutoMapRoute()` — выполнить автопоиск Page?классов и зарегистрировать их маршруты. - `Build(CancellationToken ct)` — подготовить и запустить приложение. ### `IMessengerAdapter` - `Task SendAsync(SendRequest request, CancellationToken ct = default)` — универсальный метод отправки для всех адаптеров. - `IAlbumBuilder CreateAlbumBuilder(PageContext ctx)` — создать билдер альбома (если поддерживается). - `Task OnLeaveAsync(PageContext ctx, CancellationToken ct)` — вызывается при уходе со страницы. ### `SendRequest` - `ChatId` — идентификатор чата. - `Text`, `TextFormat` — текст и формат. - `File`, `Caption`, `CaptionFormat` — файл и подпись. - `Inline`, `Reply` — inline и reply клавиатуры. - `MessageId` — id редактируемого сообщения. - `AdapterOptions` — адаптер?специфичные опции (например `TelegramOptions`). ### `PageContext` расширения - `SendAsync(SendRequest request, CancellationToken ct = default)` — отправить `SendRequest`. - `SendTextAsync(...)`, `SendFileAsync(...)` — удобные оболочки, создающие `SendRequest`. ## BotPages.Telegram - `TelegramAdapter` — реализация `IMessengerAdapter` для Telegram. - `TelegramOptions` — настройки адаптера (например `NotifyOnSend`). - `MessageBuilderExtensions.WithTelegramOptions` — расширение для установки `TelegramOptions` для конкретного сообщения. # Генерация документации Рекомендуется использовать `docfx` или `Doxygen` для генерации HTML-документации из XML-файлов, которые генерируются при сборке (см. `GenerateDocumentationFile` в `.csproj`). # Примечания Этот документ — краткое описание API. Для полного списка публичных типов и методов можно сгенерировать reference из XML-вывода компиляции.