У Битрикса есть официальная обёртка для REST API — класс CRest, который лежит в каждом примере приложения и который все копируют к себе в проект. Он умещается в один файл и работает — ровно до того момента, пока приложение не выходит в реальную эксплуатацию с несколькими порталами и фоновыми воркерами. Один баг стокового CRest однажды стоил мне шести суток простоя приложения, и причина была в одной строке: file_put_contents без блокировки. При обрыве записи settings.json оставался обрезанным, парсинг JSON падал, и приложение считало себя неустановленным — переставало отвечать на события и затирало валидные токены. Я переписал CRest с нуля под то, как приложения Bitrix24 работают на самом деле: — атомарная запись через rename() вместо file_put_contents — читатель видит либо старый файл целиком, либо новый, обрезка невозможна физически; — гонкоустойчивый refresh: одноразовый refresh_token больше не сжигается дважды, когда два воркера одновременно ловят протухший токен; — ключ портала — m
У Битрикса есть официальная обёртка для REST API — класс CRest, который лежит в каждом примере приложения и который все копируют к себе в проект. Он умещается в один файл, не требует зависимостей и работает — ровно до того момента, пока приложение не выходит в реальную эксплуатацию с несколькими порталами и фоновыми воркерами.
Дальше начинается то, о чём в документации не пишут: гонки за одноразовый токен, обрезанные конфиги, отвалившиеся порталы. Один из таких багов однажды стоил мне шести суток простоя приложения — и причина была в одной строке стокового кода.
Я переписал CRest с нуля под то, как приложения Bitrix24 работают на самом деле. Ниже — какие именно грабли стокового класса ломают прод, как каждая из них чинится, и почему ключом портала должен быть не домен. Код открыт, ссылка в конце.
Что такое CRest и почему его все используют
Похожие статьи
Российская газета
Российская газета
Как швейная фабрика в Мстиславле стала одним из индустриальных флагманов
Экономический потенциал белорусско-российского сотрудничества успешно реализуется не только на уровне промышленных гигантов и крупных административных единиц, но и раскрывается в малых районных центра...
Мужчину задержали после поджога военкомата в центре Владивостока
Полиция задержала 28-летнего мужчину, подозреваемого в поджоге военного комиссариата в центре Владивостока. Возгорание произошло в здании на улице Уборевича, сообщили в управлении МВД по Приморскому к...
Тарзан снялся в распахнутом халате и вызвал споры в сети
Российский актер и стриптизер Сергей Глушко, известный под псевдонимом «Тарзан», снялся в откровенном виде и вызвал споры в сети. Публикация появилась на его странице в Instagram (принадлежит компании...
Экс-тренер сборной Хорватии Златко Далич возглавил команду ОАЭ
Златко Далич, ранее возглавлявший сборную Хорватии, назначен главным тренером национальной команды Объединённых Арабских Эмиратов. О его назначении 12 августа сообщила Футбольная ассоциация ОАЭ.