Путешествие в Страпи.

Прошли те времена, когда рендеринг веб-страниц на стороне сервера активно использовался, и серверы несли исключительную ответственность за создание всей веб-страницы для клиентов. Помните JSP, PHP, asp?
Теперь нам приходится иметь дело с появлением новых гаджетов, развитием оборудования и внедрением технологий. Новые клиенты, такие как смартфоны, смарт-часы, смарт-телевизоры, IoT, бомбардируют рынок и активно потребляют данные.

Конечно, вы можете предоставлять данные (API) с помощью традиционной CMS, но это может стать громоздким и болезненным. Я не говорю, что вы не можете этого сделать. Это просто не продумано, чтобы сделать это с нуля.
В настоящее время существует большая потребность в разделении уровня данных/логики и уровня представления, в результате чего данные предоставляются в виде ответа JSON. Клиент, будь то браузер или приложение, должен иметь возможность отображать его. Это позволяет работать быстрее. Front end и back end команды могут работать индивидуально без особых помех.

Итак, что нам нужно, так это архитектура на основе API с возможностью управления контентом, как это делают традиционные CMS. А вот и новое броское модное слово «Headless CMS» — CMS без головы, но уж точно не без мозгов 😉
Это CMS, которая не зависит от внешнего интерфейса. CMS без уровня представления. Он должен просто иметь возможность хранить и выставлять данные.

И это насущная необходимость почти для каждого проекта. Если это то, что вам нужно, попрощайтесь со своей традиционной CMS и добро пожаловать в эру Strapi!

Кстати, знаете ли вы, что название Strapi происходит от «Bootstrap your API»?

Вы можете подумать, что открыть API можно легко, используя любой другой стек, такой как Spring Boot или Ruby On Rails и т. д. Я также работал над ними.
Но с тех пор, как я начал работать над Strapi, я заметил, что время выхода на рынок значительно сократилось. Весь шаблонный код сокращен, и я просто сосредотачиваюсь на основной бизнес-логике.

Ты знаешь почему? Поскольку все перечисленные ниже элементы поддерживаются по умолчанию.

  1. Он поддерживает все основные операции CRUD.
    Вам не нужно писать ни одной строки кода. Все, что вам нужно, это тип контента, то есть то, как выглядит ваша модель. Проще говоря, что вы хотите сохранить в своей базе данных.

2. Каждый API должен иметь пагинацию на стороне сервера, которая по умолчанию поддерживается Strapi.

3.Полнотекстовый поиск. Вам необходимо выполнять поиск в любом месте таблиц/коллекций базы данных.

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

5. Подключайте и работайте с реляционной БД на нереляционную БД.
Он поддерживает SQLite, MongoDB, MySQL, Postgres.

6. Загрузка файлов в каталог на сервере или непосредственно в корзину AWS S3.

7.Поддерживает аутентификацию OAuth2 для Google, Facebook, Github, Microsoft, Twitter, Discord.

8. Управление ролями и пользователями с доступом на уровне API.

9.Выберите REST или GraphQL.
Он поддерживает REST по умолчанию. Но вы можете установить плагин GraphQL и открывать/изменять данные.

10. Он также предоставляет вам Панель администратора, построенную на основе React, которую вы можете использовать для создания данных и легкого выполнения рутинных задач по ролям и управлению пользователями.

Технический стек Strapi.

Strapi построен на NodeJS. Он внутри использует KoaJS в качестве своей структуры, разработанной командой, создавшей ExpressJS, продаваемой как веб-инфраструктура следующего поколения.
Он работает почти со всеми основными базами данных. Для баз данных на основе SQL он использует BookshelfJS внутри, а для баз данных NoSQL использует ORM Mongoose (strapi-hook-mongoose).

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

Шпаргалка

Позвольте мне провести вас через приведенную ниже шпаргалку, которую вы всегда должны держать под рукой 😉

Системные Требования

Strapi требует только Node.js и npm. Текущая рекомендуемая версия для запуска страпи — Node v10 (текущая LTS). Это все, что нужно, прежде чем Strapi сможет работать в вашей локальной среде.
Скачать его здесь

Установите Strapi глобально

npm install strapi@beta -g

Это настроит Strapi в вашей системе по всему миру.

Создать проект

strapi new my-app

Три волшебных слова для создания вашего проекта.

Запустить проект

strapi dev

Перейдите в папку проекта и запустите проект в режиме разработки.

Создайте пользователя-администратора

После выполнения вышеуказанного шага перейдите к http://localhost:1337/admin и создайте своего первого администратора. По крайней мере, одна учетная запись является обязательной.

Создайте Content-Type «Статья»

Перейдите к Content-Type Builder и создайте свой тип контента. После этого вы можете добавить к нему данные. Strapi автоматически создаст для вас файл, показанный ниже, после того, как вы сохраните тип контента.

Получить данные для Content-Type

После выполнения вышеуказанного шага перейдите по адресу http://localhost:1337/articles.

Защитите свой API

Перейдите в раздел «Роли и разрешения» и назначьте разрешения для своих моделей. Разрешения включают (количество + создание + поиск + findOne + удаление + обновление).

Структура проекта

Папка /api содержит все типы контента, которые вы создаете. Например, посмотрите папку /article внутри /api.

Папка /build создается при запуске проекта. Он содержит файлы js для панели инструментов, основанной на реакции.

Папка /config содержит файлы конфигурации для базы данных, сервера, кэширования, локалей (i18N), cron и т. д.

В папке /extensions находятся плагины, которые вы устанавливаете.

Надеюсь, вы узнали кое-что из этого произведения. Я точно сделал! :)

Если вам понравилось читать, просто нажмите значок хлопка.

Распространять любовь! #технолюбовь

Ваш,

Мистер Двоичный