К основному контенту

Gatsby + Strapi - подготовка окружения для создания CMS #Часть 3


strapi logo
# Создание API

На данном этапе наш проект не наполнен. Переходим в панель администратора strapi: http://localhost:1337/admin.
Чтобы создать API, воспользуемся установленным "из коробки" плагином Content Type Builder.
Content Type Builder strapi

Это мощный UI, который поможет создать API в несколько кликов. В официальной документации предлагается рассмотреть пример e-commerce проекта, так что воспользуемся предложенным вариантом.

Создадим тип контента "product" и нажмём Save. Описание добавлять не обязательно, по желанию.
Add New Content Type strapi

Для сохранения созданного типа контента необходимо добавить в него поля. Сделаем это:
- поле name типа string (строка);
- поле description типа text;
- поле price, типа float (number > float).
После сохранения на панели "Content Types" появится тип "Product", который можно просматривать и редактировать. Например, добавим в поле description (если это не сделано на этапе создания) описание для типа контента Product: "Пример из документации" или что-то вроде этого.
Также добавим еще один тип контента vendor - производителя для product с полями name (string) и description (text).
Ту же самую операцию по созданию API можно совершить при помощи CLI (Command Line Interface), если интересно, можно попробовать, руководствуясь документацией.
В результате, в каталоге ./api нашего проекта появятся каталоги product и vendor, в которых содержатся все необходимые данные для работы типов контента product и vendor: маршрутизация, контроллеры, службы и модели. Более подробно структуру и принципы работы API и файловой системы рассмотрим в последующих статьях.
В итоге, мы создали API для новых типов контента product и vendor.

Комментарии

Популярные сообщения из этого блога

Gatsby + Strapi - подготовка окружения для создания CMS #Часть 1

В этой и следующей статьях рассмотрим, как именно, в какой последовательности надо готовить окружение для написания CMS (системы управления контентом) с использованием перечисленных ниже технологий. Нам понадобится: Node.js Gatsby.js Strapi.js MongoDB (почему не Postgress или MySQL, поговорим позже). Что нам обещают? Gatsby обещает "невероятную скорость работы", Strapi обещает удобную систему создания разных видов контента и удобное управление ими. Ну что же, посмотрим. Будем проверять эту теорию, так сказать, на собственной шкуре. ПРИСТУПИМ: Установку "ингредиентов" лучше проводить в таком порядке: #Установка и настройка MongoDB Сначала ставим Монгу (она понадобится для Strapi.js). С ее установкой немного пришлось повозиться, так как я это делал впервые. Качаем  MongoDB  (надо выбрать Community Server). Запускаем установщик (msi) и ждём завершения установки. На что надо обратить внимание, так как этому не всегда уделяется внимание в мануал...

Strapi: проблемы #1, созданные своими руками

Перед тем как двигаться дальше, опишу проблему, неожиданно возникшую в результате следующего старта сервера - данные пользователя, которого мы создали в прошлый раз, не сохранились, при старте " strapi start " вместо авторизации предлагается форма создания нового пользователя. Пробуем создать нового пользователя - User2. После этого отключаем всё - MongoDB, NodeJS, перезагружаем компьютер; потом заново делаем старт всех необходимых приложений. И, о чудо, после всех манипуляций User2 сохранился, получается залогиниться. Следующий запуск показал, что сервер не запускается, выдает ошибку БД в консоли mongod.exe :   "Access control is not enabled for the database." mongo.exe : MongoDB shell version v3.6.3 connecting to: mongodb://127.0.0.1:27017 MongoDB server version: 3.6.3 Server has startup warnings: 2018-03-19T23:30:39.702-0700 I CONTROL  [initandlisten] 2018-03-19T23:30:39.702-0700 I CONTROL  [initandlisten] ** WARNING: Access control is no...

Gatsby + Strapi - управление данными в CMS

# Управление данными Мы создали API и типы контента. По сути мы уже частично создали CMS - систему управления контентом. В данной статье рассмотрим некоторые возможности управления данными в нашем проекте. Ценность любой CMS заключается с том числе во взаимосвязях между различными типами контента. Настроим эти взаимосвязи, Strapi позволяет сделать это в несколько кликов. В этом нам поможет плагин Content Type Builder, который использовался ранее. Откроем в нем тип контента Product. Он содержит три поля: name (string), description (text), price (float). Построим логическую связь между "Product" и "Vendor", она будет заключаться в следующем: "Одному производителю может принадлежать множество товаров (Products)". Для этого необходимо выбрать на панели  Content Type Builder тип данных Product, созданный нами ранее: Добавляем новое поле типа  Relation : Настраиваем взаимосвязь: Должно получиться "Vendor has many Products". Такж...