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

Обновление существующих ресурсов (PATCH)

20/04/2025, by Ivan

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

Включение операции обновления

Перейдите в /admin/config/services/jsonapi
и включите опцию «Accept all JSON:API create, read, update, and delete operations».

jsonapi-accept-create-read-update-delete

Аутентификация

Обычно PATCH-запросы требуют аутентификации. Все примеры ниже используют Basic Authentication. Включите модуль basic_auth, настройте права пользователя и передайте логин и пароль в заголовке Authorization.

Пример использует пользователя «api» с паролем «api». Этот пользователь должен иметь права на обновление сущности.

Заголовки

Обязательные заголовки для всех PATCH-запросов:

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

А также заголовок авторизации:

  • Authorization: Basic YXBpOmFwaQ==

Чтобы получить значение для Authorization, используйте команду:

echo -n "USERNAME:PASSWORD" | base64 -w0

Простой PATCH-запрос

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

Тело запроса

{
  "data": {
    "type": "node--article",
    "id": "{{article_uuid}}",
    "attributes": {
      "title": "My updated title"
    }
  }
}

Поле id обязательно. Укажите только те attributes, которые нужно обновить.

Ответ

HTTP 200. Ответ содержит обновлённую сущность.

PATCH с дополнительными полями

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

Тело запроса

{
  "data": {
    "type": "node--article",
    "id": "{{article_uuid}}",
    "attributes": {
      "title": "My updated title",
      "body": {
        "value": "Updated body text",
        "format": "plain_text",
        "summary": "Updated summary"
      }
    },
    "relationships": {
      "uid": {
        "data": {
          "type": "user--user",
          "id": "{{user_uuid}}"
        }
      }
    }
  }
}

Ответ

HTTP 200. Обновлены: заголовок, тело, краткое описание и автор.

PATCH для удаления связи (entity reference)

Тело запроса

{
  "data": {
    "type": "node--article",
    "id": "{{article_uuid}}",
    "attributes": {
      "title": "My updated title",
      "body": {
        "value": "Updated body text",
        "format": "plain_text",
        "summary": "Updated summary"
      }
    },
    "relationships": {
      "my_entity_reference_field": {
        "data": {}
      }
    }
  }
}

Ответ

HTTP 200. Связь удалена, остальные поля обновлены.

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