
Мы пытались написать BFF-прокси для Redmine. Это был провал. Вот что мы сделали вместо этого
Arc-core 7 минут назад Мы пытались написать BFF-прокси для Redmine. Это был провал. Вот что мы сделали вместо этого 4 мин 224 Ruby on Rails * ReactJS * Ненормальное программирование * Веб-разработка * Open source *...
Значимый прорыв формирует отрасль ИИ: Arc-core 7 минут назад Мы пытались написать BFF-прокси для Redmine. Вот что мы сделали вместо этого 4 мин 224 Ruby on Rails * ReactJS * Ненормальное программирование * Веб-разработка * Open source * Ретроспектива Из песочницы Блог компании ArcFront. Автор: Алекс (arc-core) – Product Lead & Architect, ArcFront.
Перевод и адаптация: Елена (loc-elena) – i18n Engineer, ArcFront. Devlog о провальных экспериментах, болезненных пивотах и неожиданной элегантности 20-летней системы плагинов. Интернет полон историй успеха.
Технические детали
«Мы сделали X, и это было здорово». Это не такая история. По крайней мере, поначалу.
Это история о том, как наша команда в ArcFront три недели двигалась в совершенно неправильном направлении, что убило первый проект, как мы сделали пивот, и что мы в итоге выпустили. Неделя 1: BFF, который казался отличной идеейПроблема была очевидна: интерфейс Redmine ужасен. Решение казалось простым: сделать современный React SPA поверх Redmine.
Но React SPA нужны API. А REST API Redmine не рассчитан на прямое потребление фронтендом с другого origin’а. Возникают проблемы с CORS.
Отраслевые последствия
Сессионные куки не пробрасываются. Нужно либо настраивать Redmine на отправку CORS-заголовков (что требует модификации внутренностей или написания ещё одного плагина), либо проксировать всё через промежуточный сервер. js Express сервер на порту 3001.
Назвали его “Redmine BFF Proxy”. Даже написали документацию. Потом попробовали объяснить setup коллеге, который хотел это потестировать:«Окей, сначала запускаешь Redmine – убедись, что он на порту 80.
Потом запускаешь Node-сервер командой npm start, убедись, что он на порту 3001. env файл прокси так, чтобы он указывал на твой инстанс Redmine. Кстати, нужен Node 18 или выше.
Этот прогресс даёт важные сигналы о будущем отрасли, и технологический мир внимательно наблюдает.




