Разработчик переписал стандартный API-обработчик Битрикс24 из-за ошибок
Один из разработчиков переделал стандартный класс CRest для работы с REST API платформы Битрикс24, устранив критические баги, которые приводили к длительным простоям в высоконагруженных приложениях.
Стандартный класс CRest, который является обёрткой для REST API Битрикс24, оказался источником серьёзных проблем для приложений, работающих с высокой нагрузкой или поддерживающих несколько порталов. Изначальная реализация содержала уязвимость, связанную с некорректной записью файла настроек `settings.json` без механизма блокировки. Это приводило к так называемым «гонкам данных», когда одновременные попытки записи повреждали файл, делая его нечитаемым.
Повреждение файла настроек влекло за собой неработоспособность приложения, поскольку оно переставало считать себя установленным и игнорировало все входящие события. В одном из случаев это привело к шестидневной полной остановке работы приложения. Разработчик отметил, что эта ошибка, скрытая в одной строке кода, обходится чрезвычайно дорого при эксплуатации продукта.
В ответ на эти проблемы была создана полностью переработанная версия CRest. Новая реализация нацелена на обеспечение стабильной работы даже в условиях параллельного доступа и высокой нагрузки, исключая гонки токенов и сбои, вызванные некорректной обработкой файла настроек. Основной акцент сделан на надёжность и поддержку мультипортальных решений, чего не хватало в стоковой версии.
Это обновление значимо для всех, кто разрабатывает и поддерживает приложения на базе Битрикс24, поскольку оно обещает повысить отказоустойчивость и снизить риски простоя из-за системных ошибок базовых компонентов платформы.
Часто задаваемые вопросы
Что такое CRest в Битрикс24?
CRest — это стандартный класс-обёртка для взаимодействия с REST API платформы Битрикс24, который используется для интеграции сторонних приложений и модулей.
Какие основные проблемы были у оригинального класса CRest?
Основные проблемы включали отсутствие блокировки при записи файла `settings.json`, что приводило к повреждению данных, гонкам токенов и длительным простоям приложений, особенно в условиях высокой нагрузки или на нескольких порталах.
Почему разработчик решил переписать CRest с нуля?
Разработчик принял решение о переработке класса после того, как ошибка в стоковом CRest привела к шестидневному простою его приложения. Целью было создать более стабильную и надёжную версию, поддерживающую мультипортальность и исключающую гонки данных.
Какое значение имеет это улучшение для пользователей Битрикс24?
Переработанная версия CRest значительно повышает надёжность и стабильность приложений, использующих REST API Битрикс24, минимизируя риски сбоев и простоев, связанных с базовыми компонентами платформы.
Источник: Habr · Rusability ИИ


Комментарии (0)
Без регистрации. Комментарии проверяются автоматически перед публикацией.
Пока нет комментариев. Будьте первым!