Унікальні здібності щодо взаємодії з іншими системами — одне із найприємніших покращень Drupal 8 (як і модуль Views та BigPipe у ядрі, легший процес міграції, зручніше керування конфігураціями, неперевершена веб-доступність і багато іншого). І є різні способи забезпечити чудову швидкість для цієї взаємодії. Один із них — новий модуль під назвою Subrequests. Сьогодні ми коротенько ознайомимося з суттю роботи Subrequests та його можливостями для підвищення швидкості.
Drupal 8 та інтеграція зі сторонніми системами
Давайте спочатку поглянемо на здатність сайтів Drupal 8 ділитися даними з будь-якими сторонніми системами, які ви забажаєте. Це можуть бути нативні мобільні додатки на Android чи iOs, супердинамічні додатки на JavaScript (побудовані на Angular, React, Node, Ember, Backbone і так далі), або ж будь-які інші зовнішні системи.
З-поміж інших можливостей, це дозволяє застосувати модний підхід “headless” або “decoupled”, який полягає в тому, що Drupal служить в якості бекенду, а інший фреймворк — в якості фронтенду. Метою цього є виняткова швидкість, інтерактивність, функціонал реального часу і багато іншого.
Ключовим моментом тут є необхідність презентувати HTML-дані Друпала в форматах, яких потребують ці додатки (JSON, XML або HAL+JSON). Як хороші перекладачі допомагають людям, що говорять різними мовами, зрозуміти одне одного, так ефективні «синхронні перекладачі» між Друпалом та сторонніми системами виконують схожу місію.
Ці інтелектуальні «помічники» трансформують дані в потрібні формати. В ядрі Друпала тепер є ціла така «команда». Це — веб-сервіси (модулі Serialization, HAL, RESTful Web services і HTTP Basic Authentication).
Але, окрім них, є також чудові контрибні модулі, один з яких ми представимо просто зараз.
Модуль Subrequests та його місія підвищувати швидкість
Як зробити вищезгаданий «синхронний переклад» максимально швидким? Ось тут на сцену виходить модуль Subrequests.
Модуль Subrequests ефективно групує між собою будь-які запити, без жодних обмежень. Завдяки такій агрегації, усі запити до JSON API надсилаються як один. Відсутність «подорожей туди і назад» для отримання Drupal-даних значно підвищує швидкодію. Бутстрап Друпала потрібен лише один раз.
Єдиний запит містить інформацію про все, що додатку потрібно від Друпала. Інформація зберігається в JSON-документі під назвою “blueprint”. Він містить одразу багато об’єктів підзапитів (subrequest objects). Модуль Subrequests дає гнучні можливості, такі як надсилання паралельних запитів, надсилання запитів, які залежать від респонсу на попередній запит, і не тільки.
Встановлення модуля Subrequests для Drupal 8
Цей модуль в Drupal 7 не існував. Subrequests — абсолютна новинка Drupal 8, і його версія 8.x-2.0-beta3 вийшла лише місяць тому.
Для ефективної роботи модуль покладається на деякі PHP-бібліотеки. Отже, щоб встановити модуль Subrequests разом з бібліотеками, можна скористатися командою Composer’а:
composer require drupal/subrequests:^2.0
Більше технічних деталей зі зразками коду можна знайти в статті мейнтейнерів модуля — команди Lullabot — і на сторінці модуля на drupal.org.
Висновок
Щоб скористатися можливостями модуля Subrequests для Drupal 8 на повну силу, розробити кастомне рішення для чудової швидкості сайту та зручної інтеграції, або ж мігрувати на сучасний Drupal 8, звертайтесь до розробників InternetDevels. Отримуйте більше новин з нашої розсилки та сторінок в соціальних мережах!