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 відповіді.




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