Три варианта по созданию RESTful API в Joomla

  • Четверг, 04 сентября 2014

Сейчас в тренде предлагать RESTful сервисы для любого веб продукта, и Joomla не исключение. Однако в Joomla нет предпочтительного варианта написания RESTful сервисов, поэтому многие пытаются создать свое расширение для включения RESTful сервисов в Joomla. В этом материале рассмотрены доступные на данный момент подходы и преимущества их использования.

Использование типа документа JSON (format=json)

JSON over REST – это, наверное, самый старый и распространённый вариант. Такой метод поддерживается Joomla, и разработчикам всего лишь нужно предоставить view.json.php для отображения данных из модели в JSON. Framework on Framework (FOF) сделал шаг вперед, вам даже не надо создавать этот файл, если по умолчанию вас устраивают такие выходные данные.

Преимущества

  • Не нужны дополнительные расширения
  • Находится непосредственно в компоненте, так что очень просто использовать методы модели

Недостатки

  • Нет хорошего подхода для POST запросов, так что идеально только для выборки данных

API component (com_api)

com_api – это компонент, поддерживаемый Techjoomla и который следует архитектуре, построенной на плагинах. Разработчики пишут свои приложения (плагины), которые содержат несколько ресурсов. Например, приложение User может иметь ресурсы для выборки и сохранения данных пользователя и отдельный ресурс для логина. Аналогично приложение Content может иметь ресурсы для материалов и категорий. Это позволяет реализовывать все GET, POST, PUT и DELETE методы.

Преимущества

  • Очень близко к реализации REST
  • Структура плагина предоставляет гибкость при внедрении REST ресурсов
  • Могут быть созданы сложные модели данных, так как ни один из ресурсов не привязан к модели
  • Возможность реализовать собственную систему обработки ошибок

Недостатки

  • Могут образовываться излишки кода, если методы модели не мог повторно использоваться для выборки и сохранения данных

Концепт приложения webservices

Понимая необходимость в веб-сервисах, Chris Davenport создал очень детальную спецификацию API для рабочей группы по веб-сервисам. Концепт содержит несколько примеров ресурсов и предлагаемую/возможную реализацию веб-сервисов. Эта спецификация на самом деле не описывает, как это должны быть сделано, и больше является руководством по URL и структурам данных. Рабочий пример концепта находится здесь.

Преимущества

  • Как только окрепнет, станет вариантом по умолчанию в Joomla
  • Поддержка многоязычности

Недостатки

  • Находится в ранней стадии разработки

Есть ли еще варианты по созданию RESTful сервисов? Делитесь в комментариях.

Это перевод материала 3 ways to do RESTful APIs in Joomla.

Дмитрий Рекун

Дмитрий Рекун

Пишу везде и понемногу ;)

Латвия, Рига. https://jpath.ru/

Статьи автора

Joomla!® CMS — пожалуй, лучшая система управления контентом с открытым исходным кодом

Логотип Joomla

Joomla! — это больше, чем просто программное обеспечение, это люди, включающие разработчиков, дизайнеров, системных администраторов, переводчиков, копирайтеров, и, что самое главное — простых пользователей.

Мы рады пригласить вас в ряды нашего сообщества!

Свернуть

Коротко о главном в Joomla

Новости портала

Новое в блогах

Видео

Форум о Joomla