Совсем недавно я рассказывал про plumber2, и вот появился его свежий релиз.
Вышла версия 0.2.0, и это уже не просто косметическое обновление. Пакет постепенно доводят до состояния, когда его можно спокойно использовать в продакшене для реальных API-сервисов на R.
1. Поддержка OpenTelemetry
Главное нововведение — интеграция с OpenTelemetry.
Если коротко, теперь можно:
• собирать трассировки запросов;
• получать метрики;
• логировать события;
• подключать внешние системы мониторинга.
Это важно для всех, кто строит API не «для себя», а для команды или продукта. Можно видеть, какие эндпоинты тормозят, где возникают ошибки, как распределяется нагрузка. Для микросервисной архитектуры это особенно актуально.
OpenTelemetry можно использовать и как систему логирования, а не только для трейсинга.
2. Встроенная аутентификация
В 0.2.0 появилась удобная система guards для защиты маршрутов.
Поддерживаются разные способы авторизации: basic, bearer-токены, API-ключи, OAuth2, OpenID Connect. Всё подключается через пакет fireproof и настраивается довольно гибко.
Можно комбинировать схемы доступа, например разрешать вход по basic или по ключу вместе с Google-аутентификацией. Для корпоративных API это серьёзный шаг вперёд.
Теперь не нужно изобретать свою систему доступа поверх
plumber2.3. Datastore через аннотацию
Добавили аннотацию
@datastore. Раньше хранилища состояния нужно было описывать только в коде. Теперь их можно объявлять рядом с обработчиками.Это упрощает работу с сессиями, токенами и другими persistent-данными. Код становится чище, структура API понятнее.
4. Улучшения report-endpoints
Доработали механизм отчётных эндпоинтов.
Появилась функция
api_report(), которая расширяет возможности тега @report. Можно гибче настраивать параметры, автоматически учитывать их в OpenAPI-документации и отдавать отчёты, например, на базе Quarto.Это удобно для аналитических API, где нужно по запросу формировать отчёты или выгрузки.
Ссылки:
Более подробно про релиз можно узнать из статьи "plumber2 0.2.0".
#новости_и_релизы_по_R