Як налаштувати REST-експорт через Views у Drupal 8

06.03.2019
Як налаштувати REST-експорт через Views у Drupal 8
Автор:

Сайти на Drupal 8 здатні легко передавати дані на сторонні сайти та додатки. Це можуть бути застосунки для iOS та Android, додатки на Vue.js, React, Angular та інших JS-фреймворках, і так далі. Веб-сервіси в ядрі Drupal 8 забезпечують злагоджену взаємодію між сайтом і сторонніми ресурсами. Щоб підготувати Drupal-дані, розробники часто застосовують REST-експорт через Views у Drupal 8. Сьогодні ми розглянемо Views REST-експорт покроково.

REST-експорт через Views у Drupal 8

Модуль Views в ядрі Drupal 8 дозволяє швидко створювати колекції контенту, користувачів, термінів таксономії і так далі. Ми можемо зібрати Drupal-дані у «в’юшку» і налаштувати її експорт в форматах JSON або XML, які підтримуються сторонніми додатками. В результаті у нас вийде REST API ендпойнт, за яким інші ресурси зможуть запитувати дані.

Увімкнення модулів Drupal 8 для REST-експорту

Почнемо з увімкнення модулів пакету “Web services ”в ядрі Drupal. Для сьогоднішнього прикладу нам знадобляться два модулі з чотирьох — RESTful Web Services і Serialization.

Створення RESTful View

Створення RESTful View Ми будемо виводити контент. Для цього підійде як кастомний, так і вбудований контент-тип (“Article”, “Basic page”). Сьогодні використаємо “Article”. Можемо заздалегідь підготувати кілька тестових статей (Article 1, Article 2, Article 3) — і переходити до створення «в’юшки».

У вкладці “Structure — Views” інтерфейсу сайту, клікнемо “Add new view,” а потім зробимо 3 речі:

  • Дамо в’юшці імя.
  • Поставимо галочку на опції “Provide a REST export” (яку ми бачимо одразу поряд з традиційними опціями “Create a page” і “Create a block”).
  • Пропишемо URL-шлях для REST-експорту (за яким наш контент зможуть запитувати інші ресурси).

Налаштування RESTful View

Наша в’юшка виглядає майже як завжди, тільки показує результат у форматі JSON. Як і в стандартній «в’юшці», ми можемо:

  • обирати тип відображення з полями, з сутностями або з результатами пошуку
  • фільтрувати або сортувати контент
  • лімітувати кількість результатів
  • створювати контекстні фільтри

І багато іншого.

Давайте відфільтруємо «в’юшку» за контент-типом “Article”.

І оберемо відображення з полями:

А далі додамо пару полів — “title” і “body.” Можна також в налаштуваннях поля створити кастомний URL-шлях до кожного з них, якщо нам з певних причин не подобається дефолтний шлях.

Незвичний, але важливий елемент в інтерфейсі RESTful Views — це інструмент “Serializer”, що знаходиться в “Format.” В його налаштуваннях (“Settings”) можна обирати формати, в яких буде виводитись контент.

В нашому випадку є вибір між JSON та XML (а при встановленні інших модулів — опцій з’являється більше). Якщо жоден формат не обрано, виведення буде за замовчуванням у JSON.

Давайте збережемо «в’юшку». Дані в форматі JSON доступні за URL-шляхом, який ми прописали при створенні в’юшки (json/content). Це і є наш REST API ендпойнт, і він має наступну структуру:

website-example/json/content.

Ми отримали результат в JSON формату ASCII, що є закодованим в цілях безпеки. Він готовий до використання сторонніми додатками, яким потрібно буде його розкодувати.

Щоб перевірити, чи код валідується, та подивитись на нього в «привабливішому» вигляді, можна скористатись додатком до Chrome або одним із JSON-форматерів та валідаторів онлайн.

Пропускаємо наш код через один із них:

Інший JSON-форматер може зробити JSON ще більш читабельним, розкодувавши його:

Код валідується, тож наша в’юшка готова передавати контент на сторонні ресурси. Отже, ми успішно налаштували REST-експорт через Views у Drupal 8.

Налаштуємо потрібний експорт даних на вашому Drupal-сайті

Хоча архітектура REST підтримує операції CRUD (створення, читання, редагування та видалення даних), Views REST експорт — лише для читання.

Тож якщо вам потрібно, щоб користувачі мобільного додатку могли редагувати дані на Drupal 8 сайті, Views REST export у Drupal 8 експорт вам не підійде. У цих випадках ми запропонуємо інше рішення — повномасштабний REST API в форматі JSON, кастомні ендпойнти і так далі.

Якими б не були ваші ідеї щодо інтеграції зі сторонніми системами, наша Drupal-команда з радістю допоможе вам їх втілити!

Голосів: 1 Рейтинг: 5

Також по темі

1

Різноманітні форми — основа співпраці сайту з користувачем. Тож інструменти для створення форм завжди користуються популярністю —...

2

Усім подобаються привабливі шаблони веб-сторінок. На щастя, Drupal пропонує безліч чудових інструментів для їх створення. Наша Drupal-команда любить...

3

Що перше привертає вашу увагу, коли ви відвідуєте інтернет-магазин? Без сумніву, це дизайн сайту та його зовнішній вигляд. Виникає питання, які найкращі теми для електронної торгівлі? Не...

4

Нещодавно були оголошені дати майбутнього релізу Drupal 9 і припинення підтримки Drupal 8 та 7. Давайте детальніше дізнаємося, що це все означає для власників сайтів на Drupal 8 і 7 та які дії від...

Subscribe to our blog updates