Настройка базовой аутентификации с помощью модуля базовой аутентификации HTTP
Аутентификация для операций CRUD с JSON:API
При взаимодействии с JSON:API можно использовать такие инструменты, как Postman или cURL для отправки запросов. По умолчанию такие запросы обрабатываются от имени пользователя «аноним», поскольку эти инструменты не управляют сессией и не выполняют аутентификацию. В результате доступ к определённым ресурсам может быть ограничен в соответствии с правами, установленными для анонимных пользователей на вашем сайте Drupal.
Однако если вы хотите выполнять создание, изменение или удаление (CRUD) объектов через JSON:API, полагаться только на анонимный доступ недостаточно. Эти операции требуют аутентифицированного доступа. Drupal поддерживает различные методы аутентификации, которые можно активировать с помощью модулей ядра и дополнительных модулей.
Один из самых распространённых способов — HTTP Basic Authentication, который входит в состав ядра Drupal. Для более сложных сценариев можно использовать модуль Drupal REST & JSON API Authentication, который предлагает расширенные возможности настройки безопасности и подстройку под нужды вашего приложения.
Шаги для выполнения аутентифицированного запроса
- Убедитесь, что все операции разрешены
- Включите модуль HTTP Basic Authentication
- Создайте роль для API-пользователя
- Назначьте необходимые разрешения для этой роли. Перейдите по адресу: /admin/people/permissions/api_user
- Для примера — дайте разрешение
*Article*: Create new content
- Создайте пользователя с ролью API User: /admin/people/create
- Настройте авторизацию в Postman, используя учётные данные этого пользователя
- Добавьте заголовок Content-Type:
application/vnd.api+json
- Обновите тело запроса:
{ "data": { "type": "node--article", "attributes": { "title": "This page is created trough JSON:API", "body": { "value": "some body text", "format": "plain_text" } } } }
- Отправьте запрос и проверьте ответ. Если статус 201, значит вы успешно выполнили аутентифицированный запрос к JSON:API и создали узел типа article
JSON:API — это мощная и стандартизированная спецификация, которая упрощает создание API в Drupal. Впервые представленный как модуль ядра в Drupal 8 и выше, он позволяет разработчикам быстро и без лишней настройки получить доступ к контенту через предсказуемый и структурированный API.
Достаточно включить модуль JSON:API, чтобы получить моментальный доступ к данным сайта через согласованный интерфейс. Это удобно как для frontend-приложений, так и для интеграций или построения decoupled-архитектуры.
Чтобы изучить продвинутые функции, включая пагинацию, фильтрацию, сортировку, загрузку файлов и многое другое — ознакомьтесь с официальной документацией модуля JSON:API на Drupal.org.