Extra Block Types (EBT) - New Layout Builder experience❗

Extra Block Types (EBT) - styled, customizable block types: Slideshows, Tabs, Cards, Accordions and many others. Built-in settings for background, DOM Box, javascript plugins. Experience the future of layout building today.

Demo EBT modules Download EBT modules

❗Extra Paragraph Types (EPT) - New Paragraphs experience

Extra Paragraph Types (EPT) - analogical paragraph based set of modules.

Demo EPT modules Download EPT modules

Scroll
20/04/2025, by Ivan

JsonDrop API использует реализацию JSON:API для взаимодействия между backend и frontend и полностью соответствует:

Спецификации JSON:API

Коллекция Postman с готовыми эндпоинтами:

https://drive.google.com/file/d/1rMf0XdrK1zXwPqLQVsTH44Z2ttFxj7ss/view?usp=drive_link

По словам авторов спецификации, JSON:API — это:

[...] спецификация того, как клиент должен запрашивать получение или изменение ресурсов, и как сервер должен отвечать на эти запросы.

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

Структуры данных Drupal — такие как типы сущностей, пакеты (bundles) и поля — исключительно хорошо подходят для JSON:API.

После включения модуля JSON:API вы мгновенно получаете полноценный REST API для каждого типа сущностей в вашем Drupal-приложении. JSON:API анализирует типы сущностей и пакеты, чтобы динамически предоставить URL-адреса для доступа ко всем сущностям с использованием стандартных HTTP-методов: GET, POST, PATCH и DELETE.

JSON:API следует философии, что модуль должен быть готов к использованию «из коробки». Это значит, что модуль имеет строго определённую структуру — размещение ресурсов, доступные методы — и управление доступом осуществляется через систему прав в ядре Drupal. На данный момент нет страниц конфигурации, что позволяет запустить API-ориентированное приложение на Drupal с минимальными усилиями.

Дочерние страницы этой документации будут включать:

  • Основные концепции спецификации JSON:API и их применение в Drupal
  • Общий обзор API, предоставляемого модулем
  • Практическая информация о составлении HTTP-запросов
  • Как аутентифицировать запросы
  • Типичные ошибки и нюансы
  • Подробную документацию по:
    • Получению отдельных ресурсов (GET)
    • Получению коллекций ресурсов (GET с фильтрацией, пагинацией и сортировкой)
    • Созданию новых ресурсов (POST)
    • Обновлению существующих ресурсов (PATCH)
    • Удалению ресурсов (DELETE)

Если у вас есть конкретные вопросы, создайте запрос в очереди поддержки модуля JSON:API (480+ обращений).

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

В отличие от REST-модуля ядра Drupal, эти пути не настраиваются и включены по умолчанию. Кроме того, JSON:API — это не просто формат передачи данных, как JSON или HAL+JSON. Он задаёт полный набор правил работы API: какие методы использовать, какие коды ответа возвращать, как формируется тело ответа и как осуществляется связь между ресурсами. Подробное сравнение — JSON:API vs. REST-модуль ядра.

Типы

Каждый ресурс в JSON:API должен иметь глобально уникальное свойство type. В реализации Drupal это свойство формируется на основе машинного имени типа сущности и имени пакета. Например: статьи — node--article, страницы — node--pages, пользователи — user--user. Обратите внимание, что сущность user в Drupal не имеет пакета, поэтому имя типа повторяется.

Структура URL

Пример URL в JSON:API:

GET|POST     /jsonapi/node/article
PATCH|DELETE /jsonapi/node/article/{uuid}

Каждый тип ресурса должен иметь уникальный URL. Это означает, что URL не могут возвращать несколько типов. В Drupal URL-структура такова: /jsonapi/{entity_type_id}/{bundle_id}[/{entity_uuid}].

URL всегда начинается с /jsonapi.

Затем следует ID типа сущности и ID пакета. Обратите внимание, что путь /jsonapi/node отсутствует, так как нарушает спецификацию, возвращая несколько типов с одного URL.

Существуют:
/jsonapi/node/page
/jsonapi/node/article

Не существует:
/jsonapi/node

Чтобы обратиться к конкретному ресурсу (чтение, обновление, удаление), необходимо указать UUID ресурса. При создании ресурса или при получении коллекции ID указывать не нужно.

GET, POST
/jsonapi/node/article

PATCH, DELETE
/jsonapi/node/article/{uuid}

HTTP-методы

JSON:API поддерживает методы: GET, POST, PATCH и DELETE. Метод PUT не используется.

  • GET — Получение данных (один или несколько ресурсов)
  • POST — Создание нового ресурса
  • PATCH — Обновление существующего ресурса
  • DELETE — Удаление ресурса

Заголовки запросов

Не забудьте использовать заголовки Content-Type и Accept. Подробнее см. ответственность клиента.

Accept: application/vnd.api+json
Content-Type: application/vnd.api+json

Коды ответов

Спецификация JSON:API также определяет допустимые ответы. Реализация в Drupal поддерживает следующие коды:

  • 200 OK — успешные запросы GET и PATCH
  • 201 Created — успешные запросы POST (включает созданный ресурс)
  • 204 No Content — успешные запросы DELETE

 

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