Как создать бэкенд для React Native?
В этом учебном пособии вы научитесь создавать бэкенд для React Native с использованием Back4App.
Мы сосредоточимся на совместимости между платформами и проиллюстрируем, как вы можете интегрировать основные функции Back4App для управления данными, аутентификации пользователей и работы с данными в реальном времени.
Используя REST и GraphQL API, вы можете разработать свой проект React Native для работы как на iOS, так и на Android, обеспечивая бесшовный опыт работы с нативными компонентами и мобильными приложениями.
Реализация безопасного входа пользователей, планирование задач и использование приложений в реальном времени упростят ваш путь как разработчика полного стека.
Вы также увидите, как среда Back4App может сократить время, необходимое для настройки таких услуг, как хостинг, база данных и уровни безопасности.
К концу вы получите надежную структуру бэкенда, которая поддерживает ваше приложение React Native и прокладывает путь для создания мобильных решений в большом масштабе.
После завершения этого руководства вы будете готовы расширить свое приложение с помощью расширенных функций, интегрировать сторонние сервисы или превратить ваш проект в платформу, готовую к производству.
Давайте погрузимся в современную разработку мобильных приложений с Back4App и React Native!
Для завершения этого учебника вам понадобятся:
- Учетная запись Back4app и новый проект Back4App Начало работы с Back4app. Если у вас нет учетной записи, зарегистрируйтесь бесплатно. Затем следуйте руководству, чтобы подготовить ваш проект.
- Базовая среда разработки React Native Вы можете использовать Быстрый старт с React Native CLI или Expo CLI. Убедитесь, что у вас установлен Node.js.
- Установленный Node.js (версия 14 или выше) Вам нужен Node.js для установки npm-пакетов и запуска локальных серверов разработки. Установка Node.js
- Знание JavaScript и основных концепций React Native Официальная документация React Native. Если вы новичок в разработке на React Native, сначала ознакомьтесь с документацией или учебником для начинающих.
Убедитесь, что у вас есть все эти предварительные требования перед началом. Создание вашего проекта Back4App и настройка локальной среды React Native обеспечат гладкий процесс.
Первый шаг в создании мобильных бэкендов для вашего приложения React Native – это создание нового проекта на Back4App. Следуйте этим шагам:
- Войдите в свою учетную запись Back4App.
- Нажмите кнопку “Новое приложение” в вашей панели управления Back4App.
- Дайте вашему приложению имя (например, “ReactNative-Backend-Tutorial”).
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/drXO0UqsgxhFvRDiVmsMb_image.png?format=webp)
После создания проекта он появится на вашей панели управления Back4App. Вы будете использовать этот новый проект для управления данными и настройки безопасности для вашего приложения на React Native.
В отличие от веб-приложений на React, разработка на React Native часто требует прямых HTTP-запросов для получения и манипуляции данными. Поскольку мы сосредоточены на REST API (или GraphQL API) вместо Parse SDK, вам все равно понадобятся ваши ключи Back4App для отправки аутентифицированных запросов.
- Получите ваши ключи Parse: В панели управления Back4App откройте раздел Настройки приложения или Безопасность и ключи чтобы найти ваш Идентификатор приложения, Ключ REST API, и Конечную точку GraphQL (обычно https://parseapi.back4app.com/graphql).
- Запишите ваш ключ REST API: Вы будете включать его в заголовки fetch или axios вашего React Native для аутентификации каждого запроса.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/F9teHXd_M8ERn1OPGirbi_image.png?format=webp)
Этот шаг гарантирует, что ваши мобильные приложения могут безопасно взаимодействовать с Back4App.
Back4App предоставляет широкий спектр вариантов бэкенда для приложений React Native, включая надежные возможности управления данными. Вы можете создавать классы, добавлять поля и определять отношения через панель управления. Независимо от того, создаете ли вы приложения в реальном времени или более простые CRUD-приложения, панель управления Back4App помогает вам легко хранить и организовывать данные.
- Перейдите в раздел “База данных” в вашей панели управления Back4App.
- Создайте новый класс (например, “Todo”) и добавьте соответствующие столбцы, такие как title (строка) и isCompleted (логическое значение).
![Создать новый класс Создать новый класс](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/iaZ_P-7epc_LSMFIPlaZV_image.png?format=webp)
Back4App поддерживает различные типы данных: String, Number, Boolean, Object, Date, File, Pointer, Array, Relation, GeoPoint, и Polygon. Вы также можете позволить Parse автоматически создавать поля, когда вы отправляете новые данные.
Если вы предпочитаете, вы можете использовать AI-агента Back4App:
- Откройте AI-агента из вашей панели управления приложением.
- Опишите вашу модель данных простым языком (например, “Создайте класс Todo с полями title и isCompleted.”).
- Позвольте AI-агенту создать схему для вас.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/0snNZwHWzxuXlNu30n7IA_image.png?format=webp)
Это может сэкономить время на ранних этапах вашего проекта React Native.
Для типичной разработки React Native вы можете использовать нативный fetch API или стороннюю библиотеку, такую как axios для работы с REST API. Ниже приведен пример с использованием cURL, который вы можете адаптировать для fetch:
POST (Создать Todo):
GET (Получить Todos):
В вашем приложении React Native вы можете сделать то же самое с fetch:
Если вы предпочитаете GraphQL, Back4App предоставляет конечную точку GraphQL. Ниже приведен пример мутации для создания новой записи:
Вы можете выполнять запросы GraphQL, используя библиотеку, такую как apollo-client или даже простой fetch вызов:
Для получения данных в реальном времени Back4App предлагает живые запросы, хотя обычно это требует использования Parse SDK. Поскольку в этом учебнике мы сосредоточены на REST-вызовах, вы можете включить живые запросы в настройках сервера вашего приложения, если планируете использовать их позже. Данные в реальном времени могут помочь вам мгновенно обновлять пользователей в приложении React Native. Для более простого подхода вы можете опрашивать сервер с вашими собственными интервалами или полагаться на сторонние инструменты.
Back4App защищает ваш бэкенд с помощью ACL (Списки контроля доступа) и CLP (Разрешения на уровне класса). Они позволяют защищать данные как на уровне объектов, так и на уровне классов. Они жизненно важны для реализации безопасных пользовательских разрешений в разработке мобильных приложений уровня производства.
- Разрешения на уровне класса (CLP): Перейдите в раздел База данных вашего приложения, откройте любой класс и переключитесь на "Безопасность и разрешения". Настройте разрешения на чтение/запись для различных ролей пользователей или публичного доступа.
- ACL: Вы можете применять контроль доступа на уровне объектов, включая поля _ACL в ваших REST-запросах. Например:
Для получения дополнительной информации ознакомьтесь с Руководством по безопасности приложений.
Облачный код позволяет вам запускать серверные скрипты на Back4App для таких задач, как валидация, триггеры и обработка внешних API вызовов. Это помогает вам контролировать логику, которая должна оставаться скрытой от клиента, обеспечивая лучшую безопасность вашего проекта на React Native.
Ниже приведен пример, который вы бы написали в вашем main.js на стороне сервера. Вы можете вызвать его из вашего приложения на React Native через REST:
- Back4app CLI: Установите CLI, настройте ключ вашей учетной записи и выполните b4a deploy.
- Панель управления: Вы также можете перейти в Cloud Code > Functions, вставить ваш код в main.js, и нажать Развернуть.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/pGxBQFBhk4prMc8Ub-uho_image.png?format=webp)
Используйте REST API напрямую из вашего приложения React Native:
Эта гибкость делает вас более эффективным разработчиком полного стека, так как вы можете интегрировать бизнес-логику, не раскрывая чувствительные данные на клиенте.
Back4App использует класс Parse User для управления аутентификацией пользователей. Даже если вы не используете Parse SDK в React Native, вы можете зарегистрироваться, войти в систему или выйти из нее, используя прямые HTTP-запросы.
Зарегистрировать пользователя (REST):
Войти в систему (REST):
Эти запросы возвращают токен сессии, который вы можете сохранить в своем приложении React Native для управления сессиями пользователей. Это гарантирует, что каждый запрос, который вы делаете, может быть авторизован, создавая мобильные приложения, которые остаются безопасными.
Back4App поддерживает социальные входы (Google, Facebook, Apple) через специализированные потоки. Вам нужно будет следовать за Документация по социальному входу для настройки OAuth приложений, а затем отправить соответствующие токены в Back4App.
Back4App может хранить файлы для вашего React Native приложения. Вы можете прикрепить их к объектам или загрузить их напрямую. Поскольку мы используем REST, ниже приведен пример загрузки файла (кодированного в Base64):
Ответ возвращает URL, который вы можете сохранить в своей базе данных. Из вашего React Native приложения вы можете сделать это с помощью fetch отправив файл как blob или данные формы.
Чтобы предотвратить несанкционированные загрузки, настройте fileUpload параметры в ваших Настройках сервера Parse. Например, вы можете разрешить загрузки только от аутентифицированных пользователей. Это гарантирует, что такие услуги, как хранение файлов, остаются защищенными.
Подтверждение владения электронной почтой является ключом к реализации безопасных пользовательских потоков. Back4App предлагает встроенные инструменты для проверки электронной почты и сброса паролей.
- Откройте настройки вашего приложения.
- Включите проверку электронной почты в настройках электронной почты.
- Настройте шаблоны для сообщений о сбросе пароля и проверке.
Пользователь, который забыл свой пароль, может инициировать запрос на сброс:
Back4App отправляет пользователю электронное письмо для сброса пароля. Это удобство избавляет вас от необходимости настраивать отдельные почтовые серверы в вашем приложении React Native.
Облачные задания помогают вам автоматизировать повторяющиеся задачи, такие как очистка данных или отправка ежедневных отчетов. Ниже приведен пример задания в main.js:
Разверните этот код, затем перейдите в Настройки сервера > Фоновая работа для его планирования. Это поддерживает ваши данные актуальными на ваших платформах iOS и Android без ручного вмешательства.
![Планирование облачного задания Планирование облачного задания](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/5wG60YnWIST74erryTb-u_image.png?format=webp)
Вебхуки позволяют вашему бэкенду уведомлять внешние сервисы всякий раз, когда происходит событие. Например, вы можете уведомить Slack или платежный шлюз при создании новой задачи.
- Перейдите в Дополнительно > Вебхуки в вашей панели управления Back4App.
- Добавьте новый вебхук на указанный внешний конечный пункт.
- Установите триггеры, чтобы определить, когда изменения данных вашего приложения React Native должны вызывать вебхук.
![Добавление вебхука Добавление вебхука](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/morUMdwsAbVQ1EmBfUfAA_image.png?format=webp)
Вы также можете кодировать вебхуки внутри триггеров Cloud Code, что позволяет вам отправлять HTTP-запросы или интегрироваться с API сторонних разработчиков. Это расширяет возможности вашего бэкенда для работы с широким спектром внешних сервисов.
![BeforeSave WebHook BeforeSave WebHook](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/fXvy4eRzabyWmN80OMyqW_image.png?format=webp)
Панель администратора Back4App – это удобный интерфейс для нетехнических пользователей для управления данными. Это особенно полезно для владельцев продуктов, представителей клиентов или сотрудников поддержки, которым нужен прямой доступ к вашей модели данных.
- Включите приложение администратора в вашем Панель управления приложением > Дополнительно > Приложение администратора.
- Создайте администратора (имя пользователя/пароль).
- Выберите поддомен для быстрого доступа к базе данных без кода.
![Включите приложение администратора Включите приложение администратора](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/5BTk1ntDh9JLXurObmm_o_image.png?format=webp)
После входа в систему ваши пользователи или команда могут просматривать, редактировать или удалять записи без написания кода. Этот подход поддерживает более быстрое управление данными и сотрудничество.
В этом руководстве вы узнали как создать бэкенд для приложений React Native, используя Back4App. Это включало:
- Создание безопасного бэкенда и реализация кроссплатформенной совместимости для вашего приложения React Native.
- Настройка управления данными с помощью REST и GraphQL API.
- Настройка ACL и CLP для защиты конфиденциальных данных.
- Написание Cloud Code для серверной логики.
- Обработка аутентификации пользователей и проверки электронной почты.
- Управление хранилищем файлов с помощью прямых загрузок.
- Планирование фоновых задач с помощью Cloud Jobs.
- Использование Webhooks для интеграции внешних сервисов.
- Изучение панели администратора Back4App для удобного администрирования базы данных.
С этими инструментами и функциями ваш проект React Native может вырасти в надежное и масштабируемое полностековое решение. Теперь вы готовы обрабатывать данные в реальном времени, обеспечивать безопасность пользователей и другие важные аспекты мобильных приложений. Продолжайте изучать Документацию Back4App, чтобы улучшить свои навыки и создавать мощные мобильные приложения на платформах iOS и Android.
- Укрепите ваше приложение на React Native с помощью расширенной безопасности и контроля доступа на основе ролей.
- Экспериментируйте с обновлениями в реальном времени с использованием Live Queries для приложений в реальном времени (если необходимо).
- Интегрируйте внешние API и сервисы, включая платежные шлюзы или социальные входы.
- Улучшите производительность через кэширование или оптимизацию облачных функций.
![Doc contributor](https://s3.amazonaws.com/archbee-animals/cat.png)