Как построить бэкэнд для Ruby On Rails?
В этом учебном пособии вы научитесь создавать бэкенд для 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 обеспечит плавный процесс обучения.
Первый шаг в настройке серверной части бэкенда для вашего приложения Rails – это создание нового проекта на Back4App. Если вы этого еще не сделали:
- Войдите в свою учетную запись Back4app.
- Нажмите кнопку “Новое приложение” в вашей панели управления Back4App.
- Дайте вашему приложению имя (например, “Rails-Backend-Tutorial”).
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/drXO0UqsgxhFvRDiVmsMb_image.png?format=webp)
После создания проекта он будет виден в вашей панели управления Back4App. Этот новый проект составляет основу всех конфигураций бэкенда в этом учебном пособии.
Чтобы упростить взаимодействие с базой данных и запросы в реальном времени, Back4App использует платформу Parse. Если вы хотите интегрировать свой Rails сервер с Parse напрямую, вы можете установить гем parse-ruby-client. В противном случае вы можете полагаться на стандартные REST или GraphQL конечные точки.
Получите свои ключи Parse: В вашей панели управления Back4App перейдите в “Настройки приложения” или “Безопасность и ключи”, чтобы найти ваш Идентификатор приложения и Ключ REST API. Вы также получите ваш URL сервера Parse (например, https://parseapi.back4app.com).
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/F9teHXd_M8ERn1OPGirbi_image.png?format=webp)
Добавьте гем parse-ruby-client в ваш Gemfile:
Затем выполните:
Инициализируйте Parse в инициализаторе, таком как config/initializers/parse.rb:
На этом этапе ваше Rails приложение может взаимодействовать с Back4App для хранения и извлечения данных, организации пользовательской логики и многого другого. Этот интегрированный подход упрощает то, как ваше приложение Ruby on Rails обрабатывает бэкенд.
Во многих веб-приложениях, вы определяете свою структуру данных в Rails с помощью миграций ActiveRecord. С Back4App у вас также есть возможность создавать свою схему непосредственно на панели управления. Например, если у вас есть модель Todo :
- Перейдите в “База данных” на вашей панели управления Back4App.
- Создайте новый класс с именем “Todo” и добавьте такие столбцы, как title (Строка) и isCompleted (Булевый).
![Создать новый класс Создать новый класс](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/iaZ_P-7epc_LSMFIPlaZV_image.png?format=webp)
Back4App поддерживает String, Number, Boolean, Date, File, Pointer, Relation, Array, GeoPoint, и Polygon. Rails обычно управляет этими типами данных в своих определениях моделей, но вы также можете позволить Parse автоматически создавать столбцы при первом сохранении (если вы используете Parse SDK или REST/GraphQL API).
![Создать столбец Создать столбец](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/DEh9vyxdBTZcslXxkVQMA_image.png?format=webp)
AI-агент Back4App может автоматизировать создание схемы:
- Откройте AI-агента из вашей панели управления.
- Опишите вашу модель данных (например, “Пожалуйста, создайте новое приложение ToDo с полной схемой классов.”).
- Позвольте агенту сгенерировать вашу схему.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/0snNZwHWzxuXlNu30n7IA_image.png?format=webp)
Если вы решите интегрировать parse-ruby-client, вы можете сохранить запись следующим образом:
В качестве альтернативы вы можете использовать REST-запросы из вашего кода Rails (или любого внешнего клиента). Например, чтобы создать Todo:
Back4App также предлагает GraphQL:
Если вы хотите получать обновления в реальном времени в вашем Rails приложении, вы можете подписаться на живые запросы с фронтенда или клиента WebSocket. Включите живые запросы в настройках вашего Back4App Server Settings, затем подключитесь к wss://YOUR_SUBDOMAIN.b4a.io для постоянного потока изменений. Это полезно для динамических веб-приложений которые нуждаются в немедленном обновлении данных.
Безопасность имеет важное значение в разработке веб-приложений. Back4App предлагает Списки управления доступом (ACL) и Разрешения на уровне класса (CLP) для контроля видимости данных как на уровне объектов, так и на уровне классов. Это помогает гарантировать, что только аутентифицированные или авторизованные пользователи могут читать/писать конфиденциальные данные.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/PdAyrw1nqA1QQJFuCc-4t_image.png?format=webp)
- Перейдите в базу данных в вашей панели управления Back4App.
- Выберите класс (например, “Todo”).
- Откройте вкладку CLP для настройки доступа на чтение/запись по ролям, аутентифицированным пользователям или публичным.
Вы можете установить ACL на объект, чтобы только определенный пользователь мог его читать или изменять. В Rails с parse-ruby-client, это может выглядеть так:
Облачный код выполняется на стороне сервера с помощью JavaScript, что позволяет разработчикам добавлять пользовательскую логику, триггеры и валидации без управления собственным веб-сервером. Вы можете захотеть обработать дополнительную серверную логику или выполнить проверки перед сохранением данных.
Ниже приведен пример на JavaScript. Пока ваш Rails сервер обрабатывает основное приложение, вы все равно можете использовать облачный код для обработки данных:
Развертывание через Back4App CLI или из панели управления Back4App. Облачный код – это удобный способ инкапсулировать логику, которая общая для всех клиентов, независимо от того, какие языки программирования они используют. С поддержкой модулей на основе node (NPM) вы можете бесшовно интегрировать внешние пакеты.
Back4App управляет регистрацией пользователей, входами и сессиями с помощью встроенного класса пользователя Parse. Вы можете создать пользователя с помощью REST-вызова или через любой официальный SDK.
Вы можете интегрировать потоки входа через Facebook, Google или Apple. Каждый провайдер имеет немного другой подход, но основной принцип заключается в обмене токенами с Parse. Ознакомьтесь с официальной документацией по социальному входу для получения подробной информации о том, как интегрировать это в ваше rails приложение.
Использовать Parse для файлов так же просто, как загружать их через API Parse. Если вы используете клиент parse-ruby:
Затем вы можете прикрепить этот файл к объекту:
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/jOFU8C0qiFm6wiVZXS9l0_image.png?format=webp)
- Включите подтверждение электронной почты в вашей панели управления Back4App в разделе Настройки электронной почты.
- Настройте сброс пароля путем настройки шаблона электронной почты и параметров домена.
- Запускайте потоки электронной почты автоматически после регистрации пользователя или когда пользователь запрашивает сброс пароля. Это обеспечивает повышенную безопасность и помогает подтвердить действительность владения электронной почтой.
Если вы хотите автоматизировать задачи, такие как очистка данных или отправка ежедневных сводок, используйте облачные задания:
Вы можете запланировать такие задания в панели управления Back4App в разделе Настройки сервера > Фоновая работа для выполнения ежедневно или с желаемыми интервалами.
Вебхуки позволяют вашему приложению Back4App отправлять данные на внешний URL, когда происходят определенные события. Вы можете передавать новые или обновленные данные объектов в другую систему — например, в Stripe или Slack.
- Перейдите в раздел Больше > Вебхуки в вашей панели управления Back4App.
- Добавьте новый вебхук указывающий на ваш внешний URL (например, маршрут в вашем контроллере Rails).
- Укажите событие которое вызывает вебхук.
![Добавление вебхука Добавление вебхука](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/morUMdwsAbVQ1EmBfUfAA_image.png?format=webp)
Если вы предпочитаете, вы также можете вызвать вебхук из Cloud Code, сделав HTTP-запрос в функции beforeSave или afterSave.
![BeforeSave WebHook BeforeSave WebHook](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/fXvy4eRzabyWmN80OMyqW_image.png?format=webp)
Приложение Back4App Admin App предлагает удобный способ для не технических команд или клиентов выполнять операции CRUD с вашими данными Back4App. Этот интерфейс устраняет необходимость в прямых изменениях кода или использовании панели управления Parse для базовых задач.
Вы можете включить приложение администратора из вашей панели управления, перейдя в Дополнительно > Приложение администратора и нажав Включить приложение администратора.
![Включить приложение администратора Включить приложение администратора](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/5BTk1ntDh9JLXurObmm_o_image.png?format=webp)
После включения вы можете:
- Создавать и управлять данными без написания запросов.
- Мониторить журналы, планировать фоновые задачи и обрабатывать push-уведомления (если включены).
- Обеспечить доступ на основе ролей для членов команды для более безопасного редактирования.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/u-pU1yBJJxa9KEM2psjXS_image.png?format=webp)
Поздравляем! Вы узнали, как создать бэкенд для 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 для современных веб-приложений. Удачного кодирования!
![Doc contributor](https://s3.amazonaws.com/archbee-animals/cat.png)