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

Получение ресурсов (GET)

20/04/2025, by Ivan

На этой странице приведены примеры различных GET-запросов для модуля JSON:API.

Во всех примерах ниже заголовки запроса не требуются. Аутентификация не нужна, если анонимные пользователи имеют доступ к сущностям контента. Для конфигурационных сущностей (например, меню) см. последние разделы.

Обратите внимание: если требуется ID сущности, всегда используется UUID, а не числовой ID.

Заголовок Accept

Всегда добавляйте заголовок: Accept: application/vnd.api+json.

curl \
  --header 'Accept: application/vnd.api+json' \
  ...

Базовый пример GET

URL: http://example.com/jsonapi/node/article/{{article_uuid}}

Ответ

HTTP 200. Тело ответа содержит JSON:API-объект одной статьи с атрибутами, связями и ссылками.

Получить несколько статей

URL: http://example.com/jsonapi/node/article

Ответ

HTTP 200. JSON:API-объект с максимум 50 статьями, включая ссылку на следующую страницу.

Получить первые 10 статей

URL: http://example.com/jsonapi/node/article?page[limit]=10

Ответ

JSON-ответ с максимум 10 статьями, включая ссылку на следующую страницу.

Получить вторую страницу (10 статей)

URL: http://example.com/jsonapi/node/article?page[limit]=10&page[offset]=10

Ответ

HTTP 200. Содержит статьи и ссылки prev/next.

Подробнее о пагинации: https://www.drupal.org/docs/8/modules/jsonapi/pagination

Сортировка статей

URL: http://example.com/jsonapi/node/article?sort=nid

Ответ

HTTP 200. Статьи отсортированы по nid по возрастанию. Для убывания: &sort=-nid

Подробнее о сортировке: https://www.drupal.org/node/2803141

Фильтрация статьи по заголовку

URL: http://example.com/jsonapi/node/article?filter[article-title][path]=title&filter[article-title][value]={{title_filter}}&filter[article-title][operator]==

Ответ

HTTP 200. Возвращаются статьи, у которых значение поля title соответствует {{title_filter}}.

Подробнее о фильтрах: https://www.drupal.org/node/2943641

Получить поле изображения (ссылка на media entity)

Современный синтаксис:

http://example.com/jsonapi/node/article/{{article_uuid}}?include=field_image&fields[file--file]=uri,url

Устаревший синтаксис:

http://example.com/jsonapi/node/article/{{article_uuid}}?include=field_image,field_image.image,field_image.image.file--file&fields[field_image]=image&fields[file--file]=uri,url

Ответ

HTTP 200. Включены ссылки на изображения и их поля uri, url.

Получить статью с автором, терминами и т.д.

URL: http://example.com/jsonapi/node/article?fields[node--article]=uid,title,created&include=uid

Ответ

HTTP 200. В ответе присутствует объект пользователя, связанного с узлом.

Получить статью, пользователя и его профиль

URL: http://example.com/jsonapi/node/article/{{article_uuid}}?include=field_user_ref_example,field_user_ref_example.ref_example_profile

Ответ

HTTP 200. Ответ включает пользователя и связанный с ним профиль (вложенная связь).

Получить статью с выбранными полями связанных сущностей

URL: http://example.com/jsonapi/node/article?fields[node--article]=uid,title,created&fields[user--user]=name,mail&include=uid

Ответ

HTTP 200. Возвращается автор статьи с указанными полями (имя и email).

Получить список пользователей

URL: http://example.com/jsonapi/user/user?filter[anon][condition][path]=uid&filter[anon][condition][value]=0&filter[anon][condition][operator]=<>

Ответ

HTTP 200. Возвращаются все пользователи, кроме анонимного. Без фильтра запрос вернёт ошибку 403.

Получение конфигурационных сущностей

Конфигурационные сущности (меню, типы узлов и т.д.) отличаются от контентных. Они доступны только для чтения.

  1. Включите модуль basic_auth
  2. Предположим, что логин user-1: admin / admin

Пример запроса для получения меню:

curl \
  --header 'Accept: application/vnd.api+json' \
  http://admin:admin@drupal.d8/jsonapi/menu/menu

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