BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//BXMax//Workshops//RU
CALSCALE:GREGORIAN
METHOD:PUBLISH
BEGIN:VEVENT
UID:workshop-3@bxmax.ru
DTSTAMP:20261006T232516Z
DTSTART:20261109T170000Z
DTEND:20261202T205900Z
SUMMARY:Headless Bitrix: свой JSON API на ядре D7 для SPA и мобильного приложения
DESCRIPTION:Соберите API\, который не стыдно отдать фронтендеру и мобильному разработчику: роутинг и тонкие контроллеры\, единый контракт ответа\, сессия для браузера и Bearer для телефона\, CORS\, кэш\, realtime и OpenAPI. На штатном ядре\, без api.php в корне и без правок /bitrix/.
URL:https://bxmax.ru/workshops/headless-bitrix
END:VEVENT
BEGIN:VEVENT
UID:workshop-3-module-13@bxmax.ru
DTSTAMP:20261006T232516Z
DTSTART:20261109T170000Z
DTEND:20261109T190000Z
SUMMARY:Модуль 1: Каркас: два «REST» и свой API на роутинге ядра
DESCRIPTION:Чем свой /api/v1 отличается от модуля rest. Модуль через make:*\, маршруты в /local/routes\, тонкий контроллер\, сервис и репозиторий с DI. Контракт ответа: конверт AjaxJson и почему форматы в одном API не смешивают.
URL:https://bxmax.ru/workshops/headless-bitrix
END:VEVENT
BEGIN:VEVENT
UID:workshop-3-module-14@bxmax.ru
DTSTAMP:20261006T232516Z
DTSTART:20261111T170000Z
DTEND:20261111T190000Z
SUMMARY:Модуль 2: Чтение: данные из инфоблока без утечек
DESCRIPTION:ORM инфоблока по API_CODE\, маппер как граница между схемой базы и контрактом\, деталка и каталог кодов ошибок\, PageNavigation и белые списки сортировки и фильтров.
URL:https://bxmax.ru/workshops/headless-bitrix
END:VEVENT
BEGIN:VEVENT
UID:workshop-3-module-15@bxmax.ru
DTSTAMP:20261006T232516Z
DTSTART:20261116T170000Z
DTEND:20261116T190000Z
SUMMARY:Модуль 3: Запись: JSON-тело\, валидация и полный CRUD
DESCRIPTION:Почему $_POST пуст\, CSRF\, который ядро дописывает само\, Request DTO с атрибутами и честный 400\, PATCH против PUT\, DELETE и единая обработка ошибок.
URL:https://bxmax.ru/workshops/headless-bitrix
END:VEVENT
BEGIN:VEVENT
UID:workshop-3-module-16@bxmax.ru
DTSTAMP:20261006T232516Z
DTSTART:20261118T170000Z
DTEND:20261118T190000Z
SUMMARY:Модуль 4: Связанные данные и файлы
DESCRIPTION:N+1 и batch-выборка комментариев из HL-блока\, вложенность по ?include=\, загрузка файла с проверкой по содержимому и абсолютные URL медиа для SPA и мобилки.
URL:https://bxmax.ru/workshops/headless-bitrix
END:VEVENT
BEGIN:VEVENT
UID:workshop-3-module-17@bxmax.ru
DTSTAMP:20261006T232516Z
DTSTART:20261123T170000Z
DTEND:20261123T190000Z
SUMMARY:Модуль 5: Авторизация: браузер и мобильное приложение
DESCRIPTION:Аутентификация против авторизации и IDOR. Сессия с CSRF для SPA\, отзываемые Bearer-токены для мобилки и два фильтра\, которые пускают обоих клиентов в одни действия.
URL:https://bxmax.ru/workshops/headless-bitrix
END:VEVENT
BEGIN:VEVENT
UID:workshop-3-module-18@bxmax.ru
DTSTAMP:20261006T232516Z
DTSTART:20261125T170000Z
DTEND:20261125T190000Z
SUMMARY:Модуль 6: Чужие клиенты: CORS и интеграторы
DESCRIPTION:Preflight и белый список origin\, SPA с другого домена вживую. Вторая поверхность через модуль rest: restIntegration\, фильтр Scope и REST v3 поверх тех же сервисов.
URL:https://bxmax.ru/workshops/headless-bitrix
END:VEVENT
BEGIN:VEVENT
UID:workshop-3-module-19@bxmax.ru
DTSTAMP:20261006T232516Z
DTSTART:20261130T170000Z
DTEND:20261130T190000Z
SUMMARY:Модуль 7: Нагрузка и realtime
DESCRIPTION:Тегированный кэш с самосбросом и ключ\, который не путает страницы. Фоновые задачи после ответа и где они не годятся. Pull-сигналы для открытых вкладок без данных в payload.
URL:https://bxmax.ru/workshops/headless-bitrix
END:VEVENT
BEGIN:VEVENT
UID:workshop-3-module-20@bxmax.ru
DTSTAMP:20261006T232516Z
DTSTART:20261202T170000Z
DTEND:20261202T190000Z
SUMMARY:Модуль 8: В прод: OpenAPI\, тесты\, лимиты
DESCRIPTION:Спецификация\, которая сверяется с кодом\, тесты контракта\, лимит запросов на логин и чек-лист выкладки. Финал — разбор готового API и ответы на вопросы.
URL:https://bxmax.ru/workshops/headless-bitrix
END:VEVENT
END:VCALENDAR
