Лучшие автономные CMS с открытым исходным кодом
Технический писатель Шаника Викрамасингхе написала в своем блоге на dzone.com о лучших Headless CMS с открытым исходным кодом. При составлении списка автор сосредоточилась на функциях, предлагаемых каждым вариантом и различиях между ними.
По ее словам, если вы планируете использовать Headless CMS для масштабирования управления контентом по каналам, вы можете выбрать Headless CMS с открытым исходным кодом или Headless CMS по модели SaaS (software-as-a-service). Сравнение обоих вариантов есть здесь.
Эта автономная CMS предоставляет платформу для публикаций как частным лицам, так и компаниям. Разработана с использованием JavaScript (Node.js) и распространяется под лицензией MIT. Предлагает набор современных инструментов публикации, полнофункциональный редактор контента, возможность создания мультиавторского, многоязычного и хронологического контента. Может интегрироваться с существующими инструментами, такими как Zapier, Slack и Mailchimp, чтобы расширить рабочие процессы и обеспечить унифицированный опыт.
Предоставляет библиотеку JavaScript для взаимодействия с ContentAPI, что упрощает взаимодействие с контентом без создания ручных вызовов API.
const api = new GhostContentAPI({ // Ghost DEMO site host: 'https://demo.ghost.io', // Authentication via API Keys key: '22444f78447824223cefc48062', version: "v3" }); // fetch 5 posts, including related tags and authors api.posts.browse({ filter: 'tag:fiction+tag:fiction' }) .then((posts) => { posts.forEach((post) => { console.log(post.title); }); }) .catch((err) => { console.error(err); });
Предназначена для работы со всеми сайтами с архитектурой JAMstack. Предоставляет разработчикам гибкую и расширяемую платформу для управления и распространением контента. Поддерживает как реляционные, так и нереляционные базы данных и не зависит от внешнего интерфейса, будь то React, Angular или Vue. Strapi можно использовать для создания простых веб-сайтов, мобильных приложений и полнофункциональных коммерческих платформ.
Платформа может быть расширена с помощью сторонних интеграций, таких как Redism, Sentrym и Mailgun. В примере ниже показано, как работать со Strapi API с помощью библиотеки Axios.
import axios from 'axios'; const token = ''; // Request API. axios .get('http://localhost:1337/posts', { headers: { Authorization: `Bearer ${token}`, }, }) .then(response => { // Handle success. console.log('Data: ', response.data); }) .catch(error => { // Handle error. console.log('An error occurred:', error.response); });
По заявлению автора подборки, это одна из самых простых автономных CMS, который благодаря подходу, ориентированному на API, стремится предоставить простой, но мощный бэкенд для управления контентом. Шаника относит к основным особенностям Cockpit простой лаконичный пользовательский интерфейс и высокую масштабируемость платформы.
Согласно документации, Cockpit легко интегрируется в любой проект без необходимости создавать сценарии или включать какие-либо расширенные библиотеки PHP. Платформа также протестирована на серверах Apache и Nginx на предмет бесперебойной работы.
Следующий пример демонстрирует простой запрос GET для получения сообщения из Cockpit с помощью метода fetch.
fetch('/api/collections/get/posts?token=', { method: 'post', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ filter: {published:true}, fields: {fieldA: 1, fieldB: 1}, limit: 10, skip: 5, sort: {_created:-1}, }) }) .then(res=>res.json()) .then(res => console.log(res));
В отличие от предыдущих платформ, ApostropheCMS — это полнофункциональная CMS с открытым исходным кодом. Она создана с использованием Node.js и предлагает автономный вариант через модуль apostrophe-headless, что позволяет разработчикам интегрировать его с любым JAMstack-сайтом и предоставлять контент через RESTful API.
Платформа ориентирована на быстрый и гибкий цикл разработки, сокращающий «software time to market». ApostropheCMS можно расширить с помощью расширений и интеграций, таких как, например, Salesforce Personas, Redis Caching, Stagecoach и Webhook notifications.
Аутентификация платформы может быть выполнена с помощью API Keys или Bearer Tokens.
modules: { 'apostrophe-headless': { apiKeys: [ '' ], }, 'products': { //Other configurations // Expose via API restApi: true } }
Приведенный ниже код позволяет запрашивать данные в ApostropheCMS с помощью REST API.
// Get all products const { results } = await $axios.$get('/api/v1/products')
CMS построена с использование Node.js и использует Vue.js для интерфейса админки. Распространяется по лицензии GPLv3. Может подключаться к уже существующей базе данных или создать новую, чтобы дополнить проект выдавать контент с помощью RESTful или GraphQL API. Имеет самую широкую поддержку для реляционных баз данных с бесплатными решениями.
Directus поддерживает создание настраиваемых конечных точек API и предлагает интерфейс командной строки для создания и управления проектами. В платформе есть JavaScript SDK, который действует как оболочка для библиотеки Axios, адаптированной для взаимодействия с API.
Ниже показано, как использовать Directus SDK для аутентификации пользователя и возврата необходимых элементов.
import DirectusSDK from '@directus/sdk-js'; const directus = new DirectusSDK('https://api.example.com/'); async function getData() { // Authentication using email and password. await directus.auth.login({ email: '[email protected]', password: 'password' }); // Obtain all the articles. return await directus.items('articles').read(); } getData();
Не CMS с открытым исходным кодом, но автор включила ее в подборку, потому что это популярный инструмент и у него есть поддерживаемая сообществом бесплатная версия.
GraphCMS обрабатывает цифровые активы. Это позволяет разработчикам преобразовывать свои цифровые активы в различные форматы и структуры. Например, GraphCMS изначально поддерживает изменение размеров изображений и преобразование файлов в различные типы. Автор подборки также отмечает возможность платформы персонализировать и гибко моделировать контент. Это позволяет разработчикам создавать динамический контент для целевой аудитории и адаптировать его в соответствии с их требованиями.
Для авторизации запросов API платформа использует токены аутентификации. Ниже показан пример простого запроса для получения опубликованных сообщений об объекте «Dog», упорядоченного по созданной временной метке.
{ posts( where: { title_contains: "Dog" } orderBy: createdAt_DESC stage: PUBLISHED ) { id } }
Автор предупреждает, что переход на открытый исходный код возможен, только если у вас достаточно времени для настройки автономного решения. В противном случае лучше выбрать платформу SaaS.
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: