Drupal 8 -використання (rest) restfull api

В Drupal 8, як ми вже знаємо, дуже багато змін - вони торкнулися не тільки підходом до розробки, шляхом переходу на ООП, зміною системи темізаціі і т.д. але і впровадженням нових API. Сьогодні про таке нове API ми і поговоримо - RESTfull API.

Отже, що ж таке REST коротко - це стиль архітектури програмного забезпечення для розподілених систем, таких як World Wide Web, який, як правило, використовується для побудови веб-служб, - саме такий опис дає Хабрахабр. А якщо простою мовою - це система взаємодії клієнт / сервер шляхом HTTP запитів.

REST, в нашому житті, зустрічається дуже часто, як правило, на REST побудовані всі API, будь-яких сервісів, для інтеграції з вашим ресурсом (сайтом, додатком).

Всі взаємодія зводиться до мінімум 4м операціями, де для кожної операції використовується свій HTTP - метод:

  • Отримання даних - GET
  • Додавання даних - POST
  • Редагування даних - PUT
  • Видалення даних - DELETE

Хочу зауважити, що це список мінімум, який реалізується в системах REST.

Отже, далі я продемонструю просту реалізацію RESTfull в Drupal 8, і як завжди реалізація буде в окремому модулі, в моєму випадку буде називатися - ex_rest.

Файл маршрутизації - ex_routing.yml

Контролер - файл ExRestController.php

Для отримання заголовків використовуйте:

Для отримання вмісту відповіді використовуйте:

Хочу зауважити, що в більшості випадків, API реалізоване на REST, завжди повертає дані в JSON форматі, в просунутих системах ще і в XML. але ніхто не забороняє використовувати hal + json або siren.

Тепер, давайте перевіримо наші HTTP відповіді.

Drupal 8 -використання (rest) restfull api

Drupal 8 -використання (rest) restfull api

Drupal 8 -використання (rest) restfull api

Drupal 8 -використання (rest) restfull api

Як ви бачите, на всі наші HTTP методи приходять відповідні відповіді, описані в нашому контролері. Природно, це не повноцінна реалізація, дане застосування просто безглуздо, бо REST використовують для інтеграцій систем, і як мінімум не вистачає токенов ідентифікації, в нашому файлі маршрутизації і його відповідна перевірка (валідація) в файлі контролера і будь-яких параметрів, для отримання необхідної інформації .

Хочу зауважити, що особливість REST в тому, що сервер не запам'ятовує стан користувача між запитами - в кожному запиті передається інформація (токен), індентіфіцірующая користувача.

Завантажити модуль використовується в прикладі.