Headless або decoupled Drupal 8: давайте знайомитись — блог Drudesk
050 640 98 44
support@drudesk.com

Headless Drupal 8: коли переваг і можливостей — вище голови!

Останнім часом все більше і більше розробників у найпозитивнішому сенсі цього слова втрачають голову через чудову концепцію під назвою “headless” або “decoupled” (дослівно «безголовий» або «розділений») Drupal. Найкраще серед усіх версій Друпала до “headless” архітектури пристосований саме Drupal 8.  Все це завдяки вбудованим веб-сервісам, які вважаються одним з найважливіших досягнень за весь час еволюції Друпала від 1.0 до 8.0. Що ж, подивимось, що в «безголовому» Друпалі головне, а також як це все працює в Drupal 8.

Headless Drupal: приємно познайомитись!

Під час знайомства ввічливий джентльмен знімає капелюх, а як вас повинен вітати «безголовий Друпал» — невже з головою в руці? Ні-ні, досить жартів, ви тільки не передумайте знайомитись! ;) 
Цей термін, дещо страхітливий і смішний водночас, змушує уяву малювати відповідні картинки. Але насправді проекти, які створюються завдяки “headless” підходу, бувають чудовими настільки, що це знаходиться поза межами будь-якої уяви!

Архітектура “headless” або “decoupled” полягає в тому, що Drupal служить в якості потужного бекенду (або джерела даних) і доручає фронтенд (або презентаційну частину) якійсь іншій системі. Зазвичай це ультрашвидкий додаток, побудований за допомогою технології з сімейства JavaScript (Angular, React, Ember, Node, Knockout, Backbone, Express, Vue, Elm і т.д.), мобільний додаток на iOS чи Android або інший сторонній додаток.

Та частина, з якою взаємодіють користувачі, повністю не «друпальна». Вони не бачать фронтенд-тему Друпала (так звану “head”), звідси й термін “headless”.

Завдяки підходу “headless” ви можете робити наступне (і не тільки):

  • виводити дані Drupal-сайту на будь-який додаток, який вам потрібен;
  • збагачувати Drupal-сайт винятковими характеристиками, що пропонують інші системи (інтерактивність, супершвидкість і так далі);
  • підвищувати швидкість також завдяки тому факту, що фронтенд-додаток повністю сконцентрований на своїх обов’язках;
  • мати повну свободу у виборі інструментів для фронтенд-розробки.

Headless Drupal 8 і виняткові можливості «вісімки»

Враховуючи переваги, не дивно, що найкращі голови Drupal-спільноти започаткували пріоритетну ініціативу з розвитку веб-сервісів у Drupal 8 (WSCCI), аби зробити «велику вісімку» повністю готовою до архітектури “headless”.

Чудові результати! Дуже приємно констатувати, що в Drupal 8 є вбудовані веб-сервіси, покликані бути сполучною ланкою між Друпалом та іншою системою.

Вони допомагають виводити дані Друпала в форматах JSON, HAL+JSON, XML, які легко «споживаються» різними додатками. Отже, завдяки веб-сервісам настільки різні системи комунікують між собою, обмінюються даними і доповнюють одна одну найкращими якостями.

Коли йдеться про веб-сервіси Drupal 8, у вас широкий вибір. Зазвичай інтеграція сторонніх систем асоціюється з сервісами RESTful (тобто заснованими на архітектурній моделі REST). Однак, набувають популярності також сервіси, не пов’язані з REST (non-RESTful).

Потужна команда RESTful в Drupal 8 включає в себе ключових гравців, таких як модулі ядра Serialization, RESTful Web services, HAL і HTTP Basic Authentication (Basic Auth). Вони роблять безліч справ — забезпечують RESTful web API, здійснюють серіалізацію/десеріалізацію даних з/у формати на кшталт JSON та XML, нормалізують дані, використовуючи HAL (Hypertext Application Language або мову гіпертекстової розмітки), дбають про аутентифікацію і не тільки.
 
На додачу до ядра, є корисні контрибні модулі, такі як JSON API, Relaxed, Services, REST UI і так далі, які пропонують додаткові можливості з запровадження підходу “headless” і знаходяться в центрі уваги спільноти розробників.

А що стосується інструментів non-RESTful, то найгарячішим трендом є використання модуля GraphQL. Він використовує можливості нової мови запитів, створеної Facebook для роботи з API — GraphQL. Серед її переваг варто виділити те, що вона дає можливість «стороні клієнта» формувати запити до сервера так, щоб отримувати в точності те, що потрібно, не більше і не менше.

І наостанок

Отже, час скористатися винятковими можливостями, які “headless” або “decoupled” Drupal 8 готовий подарувати вашому проекту. Давайте обговоримо це, а наші розробники втілять усе в життя з високим рівнем професіоналізму, на який подібні проекти заслуговують.