Развязанный Drupal - что следует учитывать при использовании JSON: API?

Опубликовано: 2018-09-12

«Наиболее убедительным преимуществом Drupal, ориентированного на API, является не то, что он отрицает возможности представления Drupal, а то, как он позволяет использовать возможности CMS для работы нескольких приложений и устройств». - Джейсон Энтер, менеджер по техническим услугам, Acquia.

Отношения между контентом и кодом больше не являются здоровыми. Уровень представления, ориентированный на потребителя, не так удаляется из уровня редактора контента, как раньше, в основном из-за новых интерактивных возможностей, предоставляемых потребителям через приложения.

Современные фреймворки и языки программирования позволяют гибко формировать стек управления контентом. Таким образом, отделение содержимого от кода стало обычной практикой в ​​последние годы, и Drupal был одним из первых, кто ее принял. Давайте узнаем больше о развязанной архитектуре Drupal и Drupal 8.

Что такое Decoupled Drupal?

Ну, развязанный Drupal действительно звучит "круто", не так ли? Похоже, все об этом говорят, так что это должно быть лучшее и более простое решение, верно? Хорошо, может быть. Предлагая широкий спектр преимуществ, эта стратегия, также известная как «безголовый drupal», используется для использования Drupal исключительно как системы управления контентом без уровня представления. т.е. есть только контент и административный пользовательский интерфейс, без общедоступных тем и других шаблонов, что открывает доступ к API для других приложений.

Но, возможно, самый важный вопрос, который вы имеете в виду, будет заключаться в том, каковы преимущества отделенной архитектуры Drupal?

Безголовая архитектура отлично справляется с уменьшением или полным устранением большинства проблем, которые являются частью монолитных систем управления контентом.

Упрощенные обновления: разделенная архитектура гарантирует, что обновление CMS не повлияет на уровень представления, тем самым избавляя вас от необходимости повторной настройки после каждого обновления CMS.

Лучшая сфокусированность: огромное преимущество для разработчиков с разделенной архитектурой, им нужно только заботиться о настройке своей части стека. Back-end разработчикам не нужно беспокоиться о компиляции CSS, а фронтенд-разработчикам не нужно ломать голову над установками композитора.

Легкое устранение неполадок: архитектура без головы структурирована таким образом, что платформа состоит из более мелких отдельных частей, а не из одного гигантского приложения. Это значительно упрощает поиск ошибок и их устранение.

Повышенная производительность: обе команды работают одновременно независимо друг от друга, поэтому разработка новых функций может происходить плавно, не наталкиваясь на стены. Это, в свою очередь, улучшает общую производительность платформы.

Легкое устранение неполадок: архитектура без головы структурирована таким образом, что платформа состоит из более мелких отдельных частей, а не из одного гигантского приложения. Это значительно упрощает поиск ошибок и их устранение.

JSON-API

Насколько важен JSON: API для несвязанных сайтов Drupal?

Мощные архитектуры, гибкие и удобные для пользователя веб-приложения являются результатом фреймворков JavaScript, которые стали довольно популярными с момента их появления в начале 2010 года. И с увеличением числа людей, предпочитающих использовать мобильные устройства для доступа к цифровому контенту, создавая собственные приложения для веб-сайт имеет большой смысл.

Осознавая этот потенциал, Drupal 8 добавил поддержку для встраивания RESTful API в ядро. Однако у этого есть свои недостатки, поскольку службы RESTful ядра Drupal не предоставляют надежных решений из коробки.

Традиционная реализация REST API обычно сталкивается с определенным набором проблем:

  • Весь граф данных, необходимый для построения представления в потребителе, потребует слишком большого количества запросов.
  • Значительное раздувание ответов, возвращающих все поля и отношения каждой сущности.
  • Поиск контента на основе атрибутов данных сущностей - непростая задача.
  • Управление версиями API, чтобы потребители и внутренние реализации могли выполнять итерацию отдельно.

Для решения этих проблем существует несколько спецификаций, среди которых JSON: API является одной из самых известных.

Что такое JSON?

JSON - Java Script Object Notation - один из наиболее распространенных форматов данных для обмена данными через веб-службы. В первую очередь замена XML, легкий и удобный для чтения характер JSON делает его довольно крутым.

Почему вам следует подумать о внедрении JSON: спецификации API?

Набор предопределенных стандартов и соглашений, описывающих, как API-интерфейсы должны обслуживаться серверами и использоваться клиентами для обмена данными в формате JSON, спецификации JSON: API предлагают ключевые преимущества при реализации:

Эффективность: спецификации JSON: API разработаны таким образом, что они сводят количество запросов и размер данных к минимуму.

Производительность: так часто случается, что вы, как разработчик, не совсем понимаете, каким лучшим практикам следует придерживаться при создании API. С другой стороны, следуя набору стандартов, вы выйдете из дилеммы.

Согласованность: спецификации предлагают согласованную структуру и поведение при использовании для создания приложений.

Поддержка: спецификации широко распространены, а реализации, необходимые для клиентских библиотек, можно найти почти для всех фреймворков и языков программирования.

Модуль JSON: API

Модуль JSON: API для Drupal 8 является реализацией спецификации JSON: API. Когда вы устанавливаете и включаете модуль JSON: API, REST API сразу становится доступным для каждого типа в вашей реализации Drupal. Обходя типы сущностей и связки таким образом, что он может генерировать URL-адреса, по которым он может получать доступ и управлять объектами, модуль достигает этого подвига.

Хотя JSON API представляет собой довольно сложную спецификацию, с которой приходится иметь дело, модуль JSON API отлично справляется с задачей упрощения процесса его использования, особенно для разработчиков Drupal, которые раньше не были связаны друг с другом.

Однако, следуя принципу «меньшего количества конфигураций» и готовности к производству, модуль JSON: API действительно имеет ряд собственных недостатков.

Поддержка: модуль JSON: API полностью основан на сущностях, что означает, что он сосредоточен вокруг типов и пакетов сущностей Drupal. Однако модуль не поддерживает или не обрабатывает пользовательские данные.

Сбой задачи: поскольку модуль основан на сущности и не может обрабатывать пользовательские данные, он также не может выполнять другие задачи, такие как вход в систему, создание сеансов или выход пользователя из системы и т. Д.

Предопределенная структура: модуль JSON: API представляет предварительно определенную структуру полезной нагрузки, которую нельзя изменить. После того, как модуль включен в Drupal, согласованная структура полезной нагрузки не может быть изменена или настроена с изменением требований поставщика.

Кривая обучения: поскольку модуль JSON: API предоставляет все атрибуты объекта, он может стать сложным по своей природе. При довольно крутой кривой обучения JSON: API может не подойти всем.

JSON API

Как скачать и установить модуль JSON: API?

ОБНОВЛЕНИЕ: по состоянию на январь 2020 года модуль JSON: API теперь является частью Drupal Core (намного позже, чем этот блог был опубликован). Следовательно, для его установки не требуется следующий шаг.

Имея зависимость от модуля сериализации, он должен быть включен перед загрузкой и установкой JSON: API. Это можно сделать любым из следующих способов:

Использование Drush

 $ drush en serialization -y $ drush dl jsonapi && drush en jsonapi -y

Использование консоли Drupal

 $ drupal module:install serialization $ drupal module:download jsonapi && drupal module:install jsonapi