logo

Palette - Сделайте её яркой🎨

Palette — Визуальный конструктор страниц, диплом дизайнера не требуется.

Демо Скачать Palette

Scroll
03/05/2025, by Ivan

Кратко (TL;DR)

Используйте REST, если вам нужно работать с данными вне сущностей. Во всех остальных случаях — выбирайте JSON:API.

Более подробно:

  • Модуль REST из ядра позволяет делать что угодно (любой формат, логика, HTTP-методы) и очень гибок. Мощный, но сложный и более хрупкий.
  • JSON:API фокусируется на главной силе Drupal — сущностях и моделировании данных. Прост и в то же время достаточно мощный для большинства задач.

Сравнительная таблица возможностей

Сравнение возможностей JSON:API и REST
Возможность JSON:API REST Примечание
Сущности как ресурсы ✔️ ✔️ REST: нужно настраивать отдельно для каждого типа сущности. JSON:API: всё доступно по умолчанию.
Пользовательские данные как ресурсы ✔️ REST: возможно через @RestResource. JSON:API работает только с сущностями.
Получение отдельного ресурса ✔️ ✔️  
Получение списка ресурсов ✔️ частично REST: нужно использовать Views с REST export.
Пагинация ✔️ только с доп. модулем REST по умолчанию возвращает весь список.
Фильтрация списка ✔️ частично REST: нужно создавать фильтры вручную в Views для каждого поля и оператора.
Сортировка ресурсов ✔️  
Вложенные связи (includes) ✔️ Только в HAL+JSON  
Без избыточной обёртки полей ✔️ JSON:API нормализует поля проще и понятнее, чем стандартный REST с HAL.
Пропуск ненужных полей ✔️  
Последовательность URL ✔️  
Обнаружение доступных типов ресурсов ✔️  
Формат ответа без привязки к Drupal ✔️ REST: теоретически HAL нейтрален, но на практике содержит "друпализмы".
Библиотеки клиентов ✔️ Для JSON:API есть готовые клиенты на разных языках.
Расширяемая спецификация WIP  
Работает без настройки ✔️ REST: каждую сущность нужно конфигурировать, выбирать методы, форматы и т.д. JSON:API: всё включено по умолчанию с учётом прав доступа.

Дополнительная информация

См. обоснование добавления JSON:API в ядро Drupal и описание архитектуры модуля.

Статья с сайта Drupal Documentation.