Contenta CMS - Модный Друпал

Главные вкладки

Аватар пользователя multpix multpix 17 августа 2017 в 23:49
4

Drupal это отличная система управления контентом, когда дело касается моделирования данных,
редакторской работы.

Но эволюция современного web оставила далеко позади потребность в традиционных сайтах,
генерирующих страницы на сервере.

На сегодняшний день существует масса фреймворков для реализации реактивных клиентских приложений.

Для организации хранения данных таких приложений может послужить Drupal.
В новой версии есть все необходимые инструменты, однако существует более продвинутое решение.
Contenta CMS это Drupal дистрибутив, из коробки предоставляющий современный API.
В нем собран весь необходимый список контриб модулей, необходимых для организации API.
Предоставлены примеры для различных js фреймворков, и пример приложения drupal.

Официальный ресурс проекта http://www.contentacms.org
содержит исчерпывающую информацию по установке и использованию.

Проект упакован в удобный шаблон и содержит установочный профиль.
Подробнее про drupal project тут: Прощай Drush Make, Привет Composer
Сборка и установка включая демо данные - дело 2х-3х минут.

composer create-project contentacms/contenta-jsonapi-project api --stability dev --no-interaction
cd api/web
drush si contenta_jsonapi --db-url=sqlite://sites/default/files/.ht.sqlite

Для запуска встроенного веб сервера

drush rs

По адресу 0.0.0.0:8888 у нас работающее приложение.
доки

В примере содержатся упорядоченные ссылки на документацию, в частности на плейлисты доков по использованию jsonapi и simple_oauth .

Для API Существует отличная документация
апи

А в целом - это привычный Drupal со всем своими UI, и улучшенной темой для администрирования.

модули

права

Отчет

Однако теперь он отвечает на запросы клиентских приложений, и отдает данные в JsonAPI формате.

данніе

Для работы с API незаменимый инструмент это Postman

Postman

api recipe

Существует несколько примеров реализации клиентского приложения.

В этой статье рассматривается минималистичный фреймворк Nuxt.js для создания веб приложений на Vue.js.

Что такое Nuxt.js?

Nuxt.js — это фреймворк для универсальных приложений на Vue.js.

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

Наша цель — создать фреймворк настолько гибкий, чтобы его можно было использовать и как основу, и как дополнение к уже существующим проектам на Node.js.

Nuxt.js содержит все необходимые конфигурационные заготовки, позволяющие сделать разработку приложений с серверным рендерингом на Vue.js лёгкой и приятной.

Кроме того, мы также предоставляем другую опцию разработки: nuxt generate. С помощью неё можно статически генерировать приложения на Vue.js. На наш взгляд, эта опция может оказаться следующим большим шагом на пути разработки микросервисных веб-приложений.

Как фреймворк, Nuxt.js привносит множество возможностей, помогающих разработке, таких как: асинхронные данные, middleware, шаблоны и др.

Пример клиентского приложения достаточно просто получить и использовать.
https://github.com/contentacms/contenta_vue_nuxt

git clone https://github.com/contentacms/contenta_vue_nuxt.git
cd contenta_vue_nuxt

# установка зависимостией
npm install

# запуск сервера для localhost:3000
npm run dev

# продакшн сборка и запуск сервера
npm run build
npm run start

# генерация статического проекта
npm run generate

# запуск тестов из test/unit каталога
npm test

# для выгрузки на github страницу :
# НЕОБХОДИМО работать с репозоторием  "youname.github.io"
npm run deploy

Далее необходимо указать свой сервер с данными для этого приложения

конфиг

Бонусом: эти два приложения удобно запускать одновременно, например с foreman примерно так:

# Procfile.dev
vue_js: npm --prefix=$(pwd)/web run dev
drupal: drush --root=$(pwd)/api/web rs

foreman start -f Procfile.dev

Проект

В итоге мы получаем простой и симпатичный каталог кулинарных рецептов, для стилизации используется bluma css

Store

Recipe

На фронтенд работает реактивный Vue с серверным рендером от Nuxt, на бекенд Drupal 8 с JSON API и Simple Oauth.
Это отличный пример Drupal Headless

Комментарии