Быстрые стартеры

Как построить бэкэнд для Ruby On Rails?

34min

Введение

В этом учебном пособии вы научитесь создавать бэкенд для Ruby on Rails с использованием Back4App.

Мы рассмотрим ключевые шаги для интеграции вашего приложения Rails с основными функциями Back4App — такими как взаимодействие с базой данных, функции Cloud Code, REST и GraphQL API, аутентификация пользователей и запросы в реальном времени (Live Queries) — все это будет работать на стороне сервера.

Используя язык программирования Ruby, вы создадите надежную и масштабируемую архитектуру, которая соответствует паттерну MVC (Model-View-Controller) в Rails, позволяя разработчикам ускорить разработку веб-приложений.

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

Эти автоматизированные функции могут избавить вас от необходимости вручную настраивать веб-сервер или иметь дело со сложной инфраструктурой.

В конце концов, у вас будет гибкая и безопасная структура, готовая к производству или дальнейшим расширениям — таким как дополнительные интеграции и сложная пользовательская логика.

Если вы хотите обслуживать веб-страницы или создавать веб-приложения на основе данных, Rails и Back4App предлагают бесшовную синергию для создания современных решений на популярных языках программирования.

Предварительные требования

Чтобы завершить этот учебник, вам потребуется:

  • Учетная запись Back4App и новый проект Back4App Начало работы с Back4app. Если у вас нет учетной записи, вы можете создать ее бесплатно. Следуйте приведенному выше руководству, чтобы подготовить ваш проект.
  • Среда разработки Ruby on Rails Убедитесь, что у вас установлена Ruby (желательно версия 2.7 или выше) и гем Rails (Rails 6 или выше). Установите Rails
  • Клиент Parse Ruby Если вы собираетесь использовать SDK Parse напрямую, вы можете установить parse-ruby-client гем для обработки операций с данными с Back4App.
  • Знание MVC Rails Если вы новичок в Ruby on Rails, ознакомьтесь с официальными руководствами Rails или учебником для начинающих, чтобы понять архитектуру контроллера представления MVC Rails перед началом.

Убедитесь, что эти предварительные требования выполнены перед началом. Наличие вашего проекта Back4App, а также готового каркаса вашего приложения Rails обеспечит плавный процесс обучения.

Шаг 1 – Создание нового проекта на Back4App и подключение

Создать новый проект

Первый шаг в настройке серверной части бэкенда для вашего приложения Rails – это создание нового проекта на Back4App. Если вы этого еще не сделали:

  1. Войдите в свою учетную запись Back4app.
  2. Нажмите кнопку “Новое приложение” в вашей панели управления Back4App.
  3. Дайте вашему приложению имя (например, “Rails-Backend-Tutorial”).
Document image


После создания проекта он будет виден в вашей панели управления Back4App. Этот новый проект составляет основу всех конфигураций бэкенда в этом учебном пособии.

Подключите Parse SDK (необязательно: parse-ruby-client)

Чтобы упростить взаимодействие с базой данных и запросы в реальном времени, Back4App использует платформу Parse. Если вы хотите интегрировать свой Rails сервер с Parse напрямую, вы можете установить гем parse-ruby-client. В противном случае вы можете полагаться на стандартные REST или GraphQL конечные точки.

Получите свои ключи Parse: В вашей панели управления Back4App перейдите в “Настройки приложения” или “Безопасность и ключи”, чтобы найти ваш Идентификатор приложения и Ключ REST API. Вы также получите ваш URL сервера Parse (например, https://parseapi.back4app.com).

Document image


Добавьте гем parse-ruby-client в ваш Gemfile:

Ruby


Затем выполните:

Bash


Инициализируйте Parse в инициализаторе, таком как config/initializers/parse.rb:

Ruby


На этом этапе ваше Rails приложение может взаимодействовать с Back4App для хранения и извлечения данных, организации пользовательской логики и многого другого. Этот интегрированный подход упрощает то, как ваше приложение Ruby on Rails обрабатывает бэкенд.

Шаг 2 – Настройка базы данных

Создание модели данных

Во многих веб-приложениях, вы определяете свою структуру данных в Rails с помощью миграций ActiveRecord. С Back4App у вас также есть возможность создавать свою схему непосредственно на панели управления. Например, если у вас есть модель Todo :

  1. Перейдите в “База данных” на вашей панели управления Back4App.
  2. Создайте новый класс с именем “Todo” и добавьте такие столбцы, как title (Строка) и isCompleted (Булевый).
Создать новый класс
Создать новый класс


Back4App поддерживает String, Number, Boolean, Date, File, Pointer, Relation, Array, GeoPoint, и Polygon. Rails обычно управляет этими типами данных в своих определениях моделей, но вы также можете позволить Parse автоматически создавать столбцы при первом сохранении (если вы используете Parse SDK или REST/GraphQL API).

Создать столбец
Создать столбец


Создание модели данных с использованием AI-агента

AI-агент Back4App может автоматизировать создание схемы:

  1. Откройте AI-агента из вашей панели управления.
  2. Опишите вашу модель данных (например, “Пожалуйста, создайте новое приложение ToDo с полной схемой классов.”).
  3. Позвольте агенту сгенерировать вашу схему.
Document image


Чтение и запись данных с использованием SDK

Если вы решите интегрировать parse-ruby-client, вы можете сохранить запись следующим образом:

Ruby


Чтение и запись данных с использованием REST API

В качестве альтернативы вы можете использовать REST-запросы из вашего кода Rails (или любого внешнего клиента). Например, чтобы создать Todo:

Bash


Чтение и запись данных с использованием GraphQL API

Back4App также предлагает GraphQL:

GraphQL


Работа с живыми запросами (по желанию)

Если вы хотите получать обновления в реальном времени в вашем Rails приложении, вы можете подписаться на живые запросы с фронтенда или клиента WebSocket. Включите живые запросы в настройках вашего Back4App Server Settings, затем подключитесь к wss://YOUR_SUBDOMAIN.b4a.io для постоянного потока изменений. Это полезно для динамических веб-приложений которые нуждаются в немедленном обновлении данных.

Шаг 3 – Применение безопасности с помощью ACL и CLP

Краткий обзор

Безопасность имеет важное значение в разработке веб-приложений. Back4App предлагает Списки управления доступом (ACL) и Разрешения на уровне класса (CLP) для контроля видимости данных как на уровне объектов, так и на уровне классов. Это помогает гарантировать, что только аутентифицированные или авторизованные пользователи могут читать/писать конфиденциальные данные.

Document image


Настройка разрешений на уровне класса

  1. Перейдите в базу данных в вашей панели управления Back4App.
  2. Выберите класс (например, “Todo”).
  3. Откройте вкладку CLP для настройки доступа на чтение/запись по ролям, аутентифицированным пользователям или публичным.

Настройка ACL

Вы можете установить ACL на объект, чтобы только определенный пользователь мог его читать или изменять. В Rails с parse-ruby-client, это может выглядеть так:

Ruby


Шаг 4 – Написание функций облачного кода

Почему облачный код

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

Пример функции

Ниже приведен пример на JavaScript. Пока ваш Rails сервер обрабатывает основное приложение, вы все равно можете использовать облачный код для обработки данных:

JS


Развертывание

Развертывание через Back4App CLI или из панели управления Back4App. Облачный код – это удобный способ инкапсулировать логику, которая общая для всех клиентов, независимо от того, какие языки программирования они используют. С поддержкой модулей на основе node (NPM) вы можете бесшовно интегрировать внешние пакеты.

Шаг 5 – Настройка аутентификации

Включить аутентификацию пользователей

Back4App управляет регистрацией пользователей, входами и сессиями с помощью встроенного класса пользователя Parse. Вы можете создать пользователя с помощью REST-вызова или через любой официальный SDK.

Bash


Социальный вход

Вы можете интегрировать потоки входа через Facebook, Google или Apple. Каждый провайдер имеет немного другой подход, но основной принцип заключается в обмене токенами с Parse. Ознакомьтесь с официальной документацией по социальному входу для получения подробной информации о том, как интегрировать это в ваше rails приложение.

Шаг 6 – Обработка хранения файлов

Настройка хранения файлов

Использовать Parse для файлов так же просто, как загружать их через API Parse. Если вы используете клиент parse-ruby:

Ruby


Пример

Затем вы можете прикрепить этот файл к объекту:

Ruby

Document image


Шаг 7 – Подтверждение электронной почты и сброс пароля

  1. Включите подтверждение электронной почты в вашей панели управления Back4App в разделе Настройки электронной почты.
  2. Настройте сброс пароля путем настройки шаблона электронной почты и параметров домена.
  3. Запускайте потоки электронной почты автоматически после регистрации пользователя или когда пользователь запрашивает сброс пароля. Это обеспечивает повышенную безопасность и помогает подтвердить действительность владения электронной почтой.

Шаг 8 – Планирование задач с помощью облачных заданий

Облачные задания

Если вы хотите автоматизировать задачи, такие как очистка данных или отправка ежедневных сводок, используйте облачные задания:

JS


Вы можете запланировать такие задания в панели управления Back4App в разделе Настройки сервера > Фоновая работа для выполнения ежедневно или с желаемыми интервалами.

Шаг 9 – Интеграция вебхуков

Вебхуки позволяют вашему приложению Back4App отправлять данные на внешний URL, когда происходят определенные события. Вы можете передавать новые или обновленные данные объектов в другую систему — например, в Stripe или Slack.

  1. Перейдите в раздел Больше > Вебхуки в вашей панели управления Back4App.
  2. Добавьте новый вебхук указывающий на ваш внешний URL (например, маршрут в вашем контроллере Rails).
  3. Укажите событие которое вызывает вебхук.
Добавление вебхука
Добавление вебхука


Если вы предпочитаете, вы также можете вызвать вебхук из Cloud Code, сделав HTTP-запрос в функции beforeSave или afterSave.

BeforeSave WebHook
BeforeSave WebHook


Шаг 10 – Изучение панели администратора Back4App

Приложение Back4App Admin App предлагает удобный способ для не технических команд или клиентов выполнять операции CRUD с вашими данными Back4App. Этот интерфейс устраняет необходимость в прямых изменениях кода или использовании панели управления Parse для базовых задач.

Где это найти

Вы можете включить приложение администратора из вашей панели управления, перейдя в Дополнительно > Приложение администратора и нажав Включить приложение администратора.

Включить приложение администратора
Включить приложение администратора


Особенности

После включения вы можете:

  • Создавать и управлять данными без написания запросов.
  • Мониторить журналы, планировать фоновые задачи и обрабатывать push-уведомления (если включены).
  • Обеспечить доступ на основе ролей для членов команды для более безопасного редактирования.
Document image


Заключение

Поздравляем! Вы узнали, как создать бэкенд для Ruby on Rails с использованием Back4App. В этом учебном пособии вы:

  • Настроен проект Rails для взаимодействия с Back4App через REST, GraphQL или Parse Ruby Client.
  • Настроены безопасные взаимодействия с базой данных с использованием схем классов, ACL, CLP и необязательных Live Queries.
  • Интегрирована аутентификация пользователей с проверкой электронной почты и сбросом паролей.
  • Развернут Cloud Code для пользовательской логики, триггеров и запланированных задач.
  • Управлялись загрузки файлов, использовались вебхуки и исследовалась панель администратора.

Объединив архитектуру MVC Ruby on Rails с мощным набором функций Back4App, ваше Rails-приложение может масштабироваться без проблем.

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

Следующие шаги

  • Расширьте ваше Rails-приложение добавлением более сложных отношений, стратегий кэширования или продвинутых интеграций.
  • Интегрируйте сторонние API (например, платежные шлюзы) и используйте Cloud Code для более глубокого разработки веб-приложений.
  • Изучите официальную документацию Back4App для продвинутой безопасности, настройки производительности, анализа логов и многого другого.
  • Экспериментируйте с функциями реального времени для создания чатов или совместных платформ — идеально для данных, которые часто меняются.

С этими основами на месте вы можете быстро разрабатывать, итеративно улучшать и масштабировать ваш сервер Rails для современных веб-приложений. Удачного кодирования!