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 служит в качестве мощного бэкенда (или источника данных) и поручает фронтенд (или презентационную часть) какой-либо другой системе. Обычно это ультрабыстрое приложение, построенное c помощью технологии из семейства 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 может подарить вашему проекту. Давайте обсудим это, а наши разработчики воплотят все в жизни с высоким уровнем профессионализма, которого подобные проекты заслуживают.

Похожие материалы