ru en de zh fr
FastSchema - привет, новый бэкенд сайта!

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

Что такое Headless CMS

Headless CMS - это CMS, где бэкенд сайта отделён от фронтенда. Можем разделить на условную "логику" и "рендер". Контент хранится формально (обычно в JSON), и вы доставляете его в любое приложение — сайт, мобильное приложение и т.д. Через API можно получать один и тот же контент для разных рендеров. Это даёт гибкость в разработке и упрощает интеграции.

FastSchema

FastSchema - это бекенд-всё-в-одном (BaaS) и веб-фреймворк на Go, совмещающий возможности Headless CMS и готового API. Его ключевые фишки, за которые он мне приглянулся:

  • Schema-driven - описываешь структуру (schema), FastSchema генерирует таблицы БД и CRUD-эндпоинты автоматически.

  • Авто REST API - при создании/изменении схемы соответствующие REST-эндпоинты доступны сразу (API-first подход).

  • И по мелочам - встроенная админ-панель, управление файлами, RBAC (роли/разрешения), поддержка SQLite/Postgres/MySQL, генерация OpenAPI (docs) и т.д.

То есть по факту - все похоже на PhpMyAdmin, но более прокаченный и без необходимости делать SQL, ведь их делают за тебя с помощью RESTful запросов.

Админка

zen_owCFVBDLkc.png

Админка сильно отличается от админок обычных CMS... Ну естественно, в ином случае было бы странно. Но самая настоящая магия начинается когда мы начнем создавать структуры!

zen_7PJ2e4vthc.png

Вообще, структуры условно напоминают обычные таблицы в БД. Ну, вообще-то не условно, это они и есть!

zen_LQWwae7se8.png

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

zen_RhJdwEVZlW.png

Это уже больше похоже на то что мы привыкли видеть в админке DLE, Wordpress, Drupal и других привычных CMS!

Фронтенд

Описать все что происходит на фронтенде я могу лишь одной картинкой

То есть я буквально в коде что и делаю, так это посылаю запросы на API бекенда. И да, можно было написать и с помощью file_get_contents, это я уже просто сам для себя упрощения сделал.

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

Итог

Каковы же плюсы этого подхода?

  • Переносимость. Фронтенд можно переносить куда угодно, включая shared хостинг. При должной сноровке, владении JS, правильно расставленных разрешений и т.д. можно даже запустить на статическом хостинге по типу GitHub Pages, Hosting Web 1.0 или Neocities

  • Легковестность. Любая CMS общего назначения будет весить достаточно много. Потому что она рассчитана на покрытие всех возможных Use Case. Но Headless CMS настраивается под себя, что убирает все ненужные модули.

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

Ссылки

Реклама
Free Online Games! Amazing!
Free Image Hosting!
Fastro Dude Falco! Great Platformer Super Game!
Watch Shorts/Reels/TikTok at 1.7x rate!!
Free Cool Browser!
The Best Game - Enjoy!

Top.Mail.Ru Рейтинг kto-top.rustatop.ru - Топ рейтинг сайтовKatStat.ru - Топ рейтинг сайтовМировые поисковики и поисковые системы