Как создать серверную часть для Gatsby?
В этом учебном пособии вы узнаете как создать бэкенд для Gatsby с использованием Back4App.
Мы покажем вам, как интегрировать функции Back4App — такие как управление базами данных, функции облачного кода, REST API и возможности GraphQL-запросов , аутентификацию пользователей и запросы в реальном времени (Live Queries) — чтобы создать безопасный, масштабируемый и надежный бэкенд, к которому можно получить доступ с вашего Gatsby сайта.
Вы также увидите, как быстрая настройка и интуитивно понятная среда Back4App могут значительно сократить время и усилия, необходимые для выполнения задач бэкенда.
К концу вы точно узнаете как создать бэкенд для Gatsby , который хранит и извлекает данные, обрабатывает аутентификацию, интегрирует облачные функции и многое другое.
Это позволит вам легко внедрять пользовательскую логику, добавлять сторонние API или расширять вашу модель данных, не беспокоясь о традиционном обслуживании серверов.
- Полная интеграция бэкенда: Вы создадите масштабируемую структуру бэкенда для вашего сайта Gatsby, включая Parse SDK, который идеально подходит для динамических потребностей данных.
- Экономия времени: Back4App предоставляет инструменты, такие как AI Agent, запросы в реальном времени и облачные задания, которые ускоряют создание бэкенда.
- Расширяемые навыки: После завершения вы сможете адаптировать эти концепции для более продвинутых функций Gatsby, таких как создание страниц во время сборки или подключение к безсерверным функциям для динамических операций.
- Учетная запись Back4App и новый проект Back4App Начало работы с Back4app. Если у вас нет учетной записи, вы можете создать ее бесплатно. Следуйте приведенному выше руководству, чтобы подготовить ваш проект.
- Знание JavaScript и концепций Gatsby Официальная документация Gatsby. Прочитайте документацию или учебник для начинающих, если вы новичок в Gatsby.
Убедитесь, что у вас есть эти требования. Это обеспечит плавный процесс, когда вы создаете новый файл для конфигурации или выполняете запросы GraphQL в вашей среде Gatsby.
Первый шаг в создании бэкенда для Gatsby на Back4App – это создание нового проекта. Если вы еще этого не сделали:
- Войдите в свою учетную запись Back4App.
- Нажмите кнопку “Новое приложение” на вашей панели управления.
- Дайте вашему приложению имя (например, “Gatsby-Backend-Tutorial”).
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/drXO0UqsgxhFvRDiVmsMb_image.png?format=webp)
После создания проекта он появится на вашей панели управления Back4App. Мы будем использовать этот проект в качестве основы нашего бэкенда.
Back4App использует платформу Parse для управления вашими данными, предоставления функций в реальном времени, обработки аутентификации пользователей и многого другого. Для Gatsby вы все равно можете npm install parse и затем интегрировать его в ваши исходные файлы:
Получите ваши ключи Parse: На вашей панели управления Back4App найдите ваш Application ID и JavaScript Key, обычно в разделе “Настройки приложения” или “Безопасность и ключи.” Вы также найдете Parse Server URL (обычно что-то вроде https://parseapi.back4app.com).
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/F9teHXd_M8ERn1OPGirbi_image.png?format=webp)
Установите Parse SDK в вашем сайте Gatsby:
Создайте parseConfig.js в корневом каталоге вашего проекта Gatsby или в src/:
Каждый раз, когда вы импортируете Parse из parseConfig.js в ваши файлы Gatsby (например, в gatsby-node.js, gatsby-browser.js, или страницы/компоненты), у вас будет предварительно настроенный экземпляр, готовый для выполнения запросов к вашему бэкенду Back4App.
В Back4App данные управляются как “классы” (аналогично таблицам) с полями для ваших данных. Давайте создадим класс “Todo” для демонстрации. Мы покажем несколько способов, как вы можете сохранять и извлекать данные в Gatsby с помощью Parse.
- Перейдите в раздел “База данных” в вашей панели управления Back4app.
- Создайте новый класс (например, “Todo”) и добавьте столбцы, такие как заголовок (String) и isCompleted (Boolean).
![Создать новый класс Создать новый класс](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/iaZ_P-7epc_LSMFIPlaZV_image.png?format=webp)
Или вы можете позволить Parse автоматически создавать столбцы, когда объекты впервые сохраняются из вашего кода.
Back4App предоставляет AI-агента, чтобы помочь определить вашу структуру данных.
- Откройте AI-агента из вашей панели управления приложением или меню.
- Опишите вашу модель данных (например, “Пожалуйста, создайте новую схему приложения Todo с заголовком и статусом завершения.”).
- Позвольте AI-агенту сгенерировать схему для вас.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/0snNZwHWzxuXlNu30n7IA_image.png?format=webp)
Пример фрагмента в Gatsby может выглядеть так (например, на странице на основе React или в gatsby-browser.js):
В качестве альтернативы вы можете взаимодействовать с базой данных через REST API:
Back4App также поддерживает GraphQL API, поэтому вы можете выполнять запросы или мутации, такие как:
Это особенно удобно, если вы хотите, чтобы ваш сайт на Gatsby получал данные через запросы GraphQL во время сборки.
Gatsby — это генератор статических сайтов, но вы все равно можете настроить динамические соединения в реальном времени с помощью Parse Живые запросы. Это может быть полезно в коде, выполняемом в браузере, или в ваших собственных безсерверных хуках.
- Включите живые запросы в вашей панели управления Back4app (в разделе Настройки сервера).
- Добавьте URL сервера живых запросов в parseConfig.js:
- Подпишитесь на класс для уведомлений в реальном времени:
Это будет отправлять обновления данных в реальном времени на фронтенд вашего проекта Gatsby.
ACL (Списки управления доступом) позволяют вам определять разрешения на отдельные объекты, в то время как CLP (Разрешения на уровне класса) применяются ко всем классам в вашей базе данных Back4App.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/PdAyrw1nqA1QQJFuCc-4t_image.png?format=webp)
- Перейдите в База данных в вашей панели управления Back4App.
- Выберите класс (например, Todo).
- Нажмите на вкладку Разрешения на уровне класса.
- Настройте, является ли класс общедоступным для чтения, требует ли аутентификации или ограничен для определенных ролей.
В вашем коде Gatsby вы можете определить ACL для каждого нового объекта:
С помощью облачного кода вы можете добавить пользовательскую серверную логику в ваш бэкенд Back4App. Это отлично подходит для бизнес-правил, REST API преобразований, триггеров или валидаций данных, которые вы хотите сохранить в безопасности и не показывать на стороне клиента.
- С помощью Back4App CLI: Установите и настройте CLI, затем выполните b4a deploy.
- С помощью панели управления: Перейдите в Cloud Code > Functions на вашей панели управления, вставьте ваш код в main.js, и нажмите Deploy.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/pGxBQFBhk4prMc8Ub-uho_image.png?format=webp)
Из Gatsby/Parse SDK:
Back4App использует класс Parse.User для аутентификации. По умолчанию он обрабатывает хеширование паролей, сессии и безопасное хранение.
После входа в систему вы можете вызвать Parse.User.current() чтобы проверить, вошел ли пользователь в систему.
Вы можете интегрировать Google, Facebook, Apple, и других провайдеров с дополнительными настройками. Узнайте больше в документации по социальному входу.
Используйте Parse.File для загрузки изображений или других файлов. Например, в компоненте Gatsby:
Затем вы можете прикрепить этот файл к объекту Parse, сохранить его и позже получить URL файла для отображения на вашем сайте Gatsby.
Подтверждение электронной почты подтверждает адрес электронной почты пользователя, а процессы сброса пароля улучшают пользовательский опыт. Оба легко настраиваются в Back4App.
- Перейдите в настройки электронной почты вашего приложения в панели управления.
- Включите подтверждение электронной почты и настройте шаблон электронной почты для сброса пароля.
- Используйте методы SDK Parse (например, Parse.User.requestPasswordReset(email)) для отправки писем для сброса пароля.
Используйте Облачные задания для автоматизации повторяющихся задач, таких как удаление устаревших данных или отправка ежедневных сводок. Например:
Затем запланируйте это в разделе Настройки приложения > Настройки сервера > Фоновая работа.
![Запланировать облачную задачу Запланировать облачную задачу](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/5wG60YnWIST74erryTb-u_image.png?format=webp)
Вебхуки позволяют вашему приложению Back4App отправлять HTTP-запросы во внешние сервисы, когда происходят определенные события — например, создание новой записи.
- Перейдите в вашу панель управления Back4App > Дополнительно > Вебхуки.
- Добавьте новый вебхук, указав URL-адрес конечной точки для внешнего сервиса.
- Выберите то, что вызывает вебхук (например, afterSave в классе Todo).
![Добавление вебхука Добавление вебхука](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/morUMdwsAbVQ1EmBfUfAA_image.png?format=webp)
Вы также можете интегрироваться со Slack или платежными системами, добавив соответствующую конечную точку.
Admin App Admin App — это интерфейс, ориентированный на модели, для управления данными. Вы можете предоставить нетехническим пользователям безопасный доступ для выполнения операций CRUD с вашими классами.
Перейдите в App Dashboard > More > Admin App и нажмите “Включить Admin App.”
![Включить Admin App Включить Admin App](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/5BTk1ntDh9JLXurObmm_o_image.png?format=webp)
Затем создайте пользователя Admin и выберите поддомен для интерфейса администратора.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/u-pU1yBJJxa9KEM2psjXS_image.png?format=webp)
Теперь вы можете войти в свой Admin App, чтобы просматривать и изменять данные без написания кода.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/jOFU8C0qiFm6wiVZXS9l0_image.png?format=webp)
В этом учебном пособии вы узнали как создать бэкенд для Gatsby с использованием Back4App. Вы научились:
- Настроить безопасную базу данных с классами, пользовательскими полями и отношениями.
- Использовать Parse SDK, вместе с REST API и GraphQL запросами для транзакций данных.
- Настроить ACL и CLP для безопасности данных.
- Написать и развернуть Cloud Code для расширения бизнес-логики и триггеров.
- Управлять аутентификацией пользователей с регистрацией, входом, сбросом пароля и подтверждением электронной почты.
- Обрабатывать хранение файлов для изображений и документов.
- Запланировать автоматизированные задачи с помощью Cloud Jobs.
- Интегрировать внешние сервисы через Webhooks.
- Использовать Admin App для простого администрирования данных.
С этими навыками ваш сайт на Gatsby может использовать мощные динамические функции, при этом пользуясь статической отрисовкой Gatsby. Отсюда вы можете:
- Расширить вашу модель данных и добавить сложную бизнес-логику.
- Интегрировать больше внешних API для действительно комплексной платформы.
- Следовать официальной документации Back4App для более глубокого изучения безопасности, производительности и аналитики.
- Экспериментировать с функциями времени сборки Gatsby—например, “создавать страницы” из динамических данных или настроить плагин “gatsby source” для вашего бэкенда Back4App.
Теперь у вас есть прочная основа для создания будущих, ориентированных на данные приложений с помощью Gatsby и Back4App.
![Doc contributor](https://s3.amazonaws.com/archbee-animals/cat.png)