Рубріки: Back-end

Лучшие автономные CMS с открытым исходным кодом

Богдан Мирченко

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

По ее словам, если вы планируете использовать Headless CMS для масштабирования управления контентом по каналам, вы можете выбрать Headless CMS с открытым исходным кодом или Headless CMS по модели SaaS (software-as-a-service). Сравнение обоих вариантов есть здесь.

Ghost 

Эта автономная 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);
  });

 Strapi

Предназначена для работы со всеми сайтами с архитектурой 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);
    });

Cockpit 

По заявлению автора подборки, это одна из самых простых автономных 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 

В отличие от предыдущих платформ, 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')

Directus

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: 'admin@example.com', password: 'password' });
    
        // Obtain all the articles.
        return await directus.items('articles').read();
    }
    
    getData();

GraphCMS 

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

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

Для авторизации запросов API платформа использует токены аутентификации. Ниже показан пример простого запроса для получения опубликованных сообщений об объекте «Dog», упорядоченного по созданной временной метке.

{
        posts(
          where: { title_contains: "Dog" }
          orderBy: createdAt_DESC
          stage: PUBLISHED
        ) {
          id
        }
    }

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

Останні статті

Обучение Power BI – какие онлайн курсы аналитики выбрать

Сегодня мы поговорим о том, как выбрать лучшие курсы Power BI в Украине, особенно для…

13.01.2024

Work.ua назвал самые конкурентные вакансии в IТ за 2023 год

В 2023 году во всех крупнейших регионах конкуренция за вакансию выросла на 5–12%. Не исключением…

08.12.2023

Украинская IT-рекрутерка создала бесплатный трекер поиска работы

Unicorn Hunter/Talent Manager Лина Калиш создала бесплатный трекер поиска работы в Notion, систематизирующий все этапы…

07.12.2023

Mate academy отправит работников в 10-дневный оплачиваемый отпуск

Edtech-стартап Mate academy принял решение отправить своих работников в десятидневный отпуск – с 25 декабря…

07.12.2023

Переписки, фото, история браузера: киевский программист зарабатывал на шпионаже

Служба безопасности Украины задержала в Киеве 46-летнего программиста, который за деньги устанавливал шпионские программы и…

07.12.2023

Как вырасти до сеньйора? Девелопер создал популярную подборку на Github

IT-специалист Джордан Катлер создал и выложил на Github подборку разнообразных ресурсов, которые помогут достичь уровня…

07.12.2023