[recovery mode] Почему для информационных проектов из всех Headless CMS мы часто выбираем Strapi

Существует большое количество (всего порядка 50) Headless CMS. Это системы управления, в которых реализован новый принцип разделения двух слоев — данных и представления (логика Jamstack).


5wbq51dboqlaqdf3p02menlzvb0.jpeg

Headless CMS отвечают только за бэкенд-часть (данные), и могут взаимодействовать с любыми платформами представления (сайтами, приложениями). Благодаря этому одну систему можно использовать для разных пользовательских интерфейсов.

Какие бывают Headless CMS

Все системы управления, работающие по логике Jamstack, представлены на сайте headlesscms.org. Они разделены, прежде всего, на открытые и закрытые — open source и closed source — решения.

По способу развертывания, разные HCMS предполагают установку локально или через облачные сервисы.

По способу передачи данных, системы могут поддерживать REST API, GraphQL или оба синтаксиса.

Headless CMS предполагают создание контентной сущности на основе моделей, которые могут создавать разработчики. Практически во всех случаях процесс создания возможен через пользовательский интерфейс.

Многие HCMS поддерживают управление проектами, изображениями, файлами, данными и доступами пользователей.

Почему Strapi

В списке Headless CMS с открытым исходным кодом Strapi недаром занимает первое место. Это решение пользуется большой популярностью и имеет свыше 28 тысяч звезд на GitHub.


lt1ujfr1stt_oj4wlkwlodw63bu.jpeg

Система предназначается для профессиональных разработчиков. Однако для работы с ней не требуется слишком глубоких и разносторонних познаний в области программирования. В этом главная ценность Strapi — она позволяет максимально быстро и с минимальными ресурсами создавать API для работы с данными.

Основные особенности

Strapi представляет собой фреймворк для управления контентом, работающий на Node.js. Это open source-проект, полностью бесплатный. Система разворачивается локально на собственном сервере компании, что обеспечивает безопасность данных.

CMS можно настраивать и масштабировать с помощью системы плагинов. Здесь предусмотрено множество встроенных возможностей: удобная административная панель, управление аутентификацией и доступами, инструменты для работы с контентом, генератор API и прочее.

Главные особенности и преимущества Strapi:


  • Открытый исходный код. Система разработана энтузиастами и поддерживается сотнями участников GitHub, которые развивают ее в соответствии с новыми требованиями и технологиями. Она всегда будет доступна и бесплатна.
  • Широкие и гибкие настройки. Панель администратора, как и API, легко настраивается. Функционал расширяется за счет пользовательских плагинов в считанные секунды.
  • RESTful или GraphQL. CMS поддерживает передачу данных посредством и REST, и GraphQL. Это расширяет возможности взаимодействия с разными клиентами, мобильными приложения, IoT-устройствами.
  • Локальное размещение. Размещение на собственном сервере владельца системы гарантирует конфиденциальность и обеспечивает повышенный уровень защиты данных (в том числе в соответствии с европейским стандартом GDPR).
  • Один язык. Система использует JavaScript, что позволяет работать с одним языком как в CMS, так и во фронтенде.
  • Настройки доступа. В системе реализован контроль доступа с учетом разных уровней и ролей пользователей (администраторов).

Применение Strapi

Система имеет множество вариантов применения. Она может использоваться для статических сайтов, мобильных приложений, корпоративных ресурсов, электронной коммерции.


xidpbpnc5xghftqo-ptax_jdfi8.jpeg

На Strapi создаются ультра-быстрые современные сайты и мобильные приложения. Повышенная производительность достигается при использовании Headless CMS в связке со статическим генератором сайтов и обслуживании через CDN.

Релевантные части контента загружаются в тот момент, когда пользователь делает запрос. Повторная загрузка содержимого осуществляется только после его обновления. Благодаря этому сайт доступен по всему миру без ожидания на стороне сервера.

Strapi поддерживает любые статические генераторы сайтов и различные фреймворки для создания пользовательских интерфейсов. Самые популярные из них: Gatsby, React, Vue.js, Nuxt.js, Next.js, Angular.

Как использовать Strapi

Чтобы разработать API с помощью Strapi, предпочтительнее использовать PostgreSQL, MongoDB, MySQL или MariaDB. Установка происходит с использованием npm.

Дальнейшая последовательность действий:


  • Создается директория для нового проекта.
  • Внутри директории выполняется команда для создания нового API.
  • Запускается сервер на Node.js.
  • Регистрируется первый пользователь.
  • Создается тип контента (Content Type — структуры данных в Strapi, эквивалент моделей).
  • Добавляются материалы в базу данных.
  • Настраиваются роли пользователей (администраторов, редакторов).

После этого можно взаимодействовать со Strapi через любимый API-протокол для генерации статического контента и/или использовать API-вызовы на регулярной основе, как и к любому бэкенду.


ijgbjx0qbes9g6e4hkkmk6utgqe.jpeg

Далее выводится контент, настраивается отображение содержимого, создается страница автора. Впоследствии можно добавить категории материалов, возможность комментирования.

Алгоритм подходит для создания блогов, бизнес-сайтов, интернет-магазинов.

Обслуживание моделей через UI

Еще одна важная особенность Strapi — возможность обслуживания моделей данных через пользовательский интерфейс.

Обычно ведение базы данных требует вмешательства в кодовую базу: разработчик пишет миграции, пробует применить их в тестовой среде, переносит код в продакшн и, в конце концов, приводит базу данных к нужному состоянию.

В Strapi также можно действовать через программную среду, описывая модели данных. Но можно использовать и административный интерфейс, добавляя и редактируя необходимые поля базы данных на лету, сразу в продакшн-системе.

Например, вот как удобно можно указать связь двух моделей в базе данных с помощью UI:


vd_dqujmbmatskwmh0mhpl7g3j4.jpeg

Здесь же задаются все привычные настройки для модели: фильтрация значений по регулярному выражению, обязательность необходимых полей, проверка уникальности, длина заполняемого поля и т.д.

Почему мы считаем, что Strapi лучше других Headless CMS

Мы используем бесплатную стабильную версию Strapi, которая позволяет создавать супер-быстрые статические сайты и экономит время разработки.

Система имеет удобную административную панель, легко масштабируется с помощью плагинов. Для работы с ней не требуются углубленные знания в веб-разработке.

Управление контентом осуществляется централизованно. А поскольку все технические решения скрыты на стороне сервера, система менее уязвима для атак.

© Habrahabr.ru