Quickstarters
Feature Overview
Как построить бэкэнд для Ruby On Rails?
34 мин
введение в этом учебном пособии вы научитесь создавать бэкенд для 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 https //www back4app com/docs/get started/new parse app если у вас нет учетной записи, вы можете создать ее бесплатно следуйте приведенному выше руководству, чтобы подготовить ваш проект среда разработки ruby on rails убедитесь, что у вас установлена ruby (желательно версия 2 7 или выше) и гем rails (rails 6 или выше) установите rails https //guides rubyonrails org/getting started html клиент parse ruby если вы собираетесь использовать sdk parse напрямую, вы можете установить parse ruby client https //github com/parse community/parse sdk ruby гем для обработки операций с данными в back4app знание mvc rails если вы новичок в ruby on rails, ознакомьтесь с официальными руководствами rails https //guides rubyonrails org/ или учебником для начинающих, чтобы понять архитектуру контроллера представления mvc rails перед началом убедитесь, что эти предварительные требования выполнены перед началом наличие вашего проекта back4app и готового каркаса вашего rails приложения обеспечит плавный процесс обучения шаг 1 – создание нового проекта на back4app и подключение создать новый проект первый шаг в настройке серверной части бэкенда для вашего rails приложения – это создание нового проекта на back4app если вы этого еще не сделали войдите в свою учетную запись back4app нажмите кнопку “новое приложение” в вашей панели управления back4app дайте вашему приложению имя (например, “rails backend tutorial”) после создания проекта он будет виден в вашей панели управления back4app этот новый проект составляет основу всех конфигураций бэкенда в этом учебнике подключите parse sdk (необязательно parse ruby client) чтобы упростить взаимодействие с базой данных и запросы в реальном времени, back4app использует платформу parse если вы хотите интегрировать свой rails сервер с parse напрямую, вы можете установить гем parse ruby client в противном случае вы можете полагаться на стандартные rest или graphql конечные точки получите свои ключи parse в вашей панели управления back4app перейдите в “настройки приложения” или “безопасность и ключи”, чтобы найти ваш id приложения и rest api ключ вы также получите ваш url сервера parse (например, https //parseapi back4app com ) добавьте гем parse ruby client в ваш gemfile gem 'parse ruby client' затем выполните bundle install инициализируйте parse в инициализаторе, таком как config/initializers/parse rb \# config/initializers/parse rb require 'parse' parse init application id 'your application id', api key 'your rest api key', server url 'https //parseapi back4app com' на этом этапе ваше rails приложение может взаимодействовать с back4app для хранения и извлечения данных, организации пользовательской логики и многого другого этот интегрированный подход упрощает то, как ваше приложение ruby on rails обрабатывает бэкенд шаг 2 – настройка базы данных создание модели данных во многих веб приложениях , вы определяете свою структуру данных в rails с помощью миграций activerecord с back4app у вас также есть возможность создавать свою схему непосредственно на панели управления например, если у вас есть модель todo перейдите в “база данных” на вашей панели управления back4app создайте новый класс с именем “todo” и добавьте такие столбцы, как title (строка) и iscompleted (булевый) back4app поддерживает string , number , boolean , date , file , pointer , relation , array , geopoint , и polygon rails обычно управляет этими типами данных в своих определениях моделей, но вы также можете позволить parse автоматически создавать столбцы при первом сохранении (если вы используете parse sdk или rest/graphql api) создание модели данных с использованием ai агента ai агент back4app может автоматизировать создание схемы откройте ai агента из вашей панели управления опишите вашу модель данных (например, “пожалуйста, создайте новое приложение todo с полной схемой классов ”) позвольте агенту сгенерировать вашу схему чтение и запись данных с использованием sdk если вы решите интегрировать parse ruby client , вы можете сохранить запись следующим образом \# app/controllers/todos controller rb def create todo class = parse object new('todo') todo class\['title'] = params\[ title] todo class\['iscompleted'] = false begin todo class save render json { message 'todo saved successfully' } rescue => e render json { error e message }, status 500 end end def index query = parse query new('todo') results = query get render json results end чтение и запись данных с использованием rest api в качестве альтернативы вы можете использовать rest вызовы из вашего кода rails (или любого внешнего клиента) например, чтобы создать todo curl x post \\ h "x parse application id your application id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"title" "finish rails guide", "iscompleted" false}' \\ https //parseapi back4app com/classes/todo чтение и запись данных с использованием graphql api back4app также предлагает graphql mutation { createtodo(input { fields { title "plan web pages" iscompleted false } }) { todo { objectid title iscompleted } } } работа с живыми запросами (по желанию) если вы хотите получать обновления в реальном времени в вашем rails приложении , вы можете подписаться на живые запросы с фронтенда или клиента websocket включите живые запросы в настройках вашего back4app server settings , затем подключитесь к wss\ //your subdomain b4a io для постоянного потока изменений это полезно для динамических веб приложений которые нуждаются в немедленных обновлениях данных шаг 3 – применение безопасности с помощью acl и clp краткий обзор безопасность имеет важное значение в разработке веб приложений back4app предлагает списки управления доступом (acl) и разрешения на уровне класса (clp) для контроля видимости данных как на уровне объектов, так и на уровне классов это помогает гарантировать, что только аутентифицированные или авторизованные пользователи могут читать/писать конфиденциальные данные настройка разрешений на уровне класса перейдите в базу данных в вашей панели управления back4app выберите класс (например, “todo”) откройте вкладку clp для настройки доступа на чтение/запись по ролям, аутентифицированным пользователям или публичным настройка acl вы можете установить acl на объект, чтобы только определенный пользователь мог его читать или изменять в rails с parse ruby client , это может выглядеть так todo = parse object new('todo') acl = parse acl new \# set read/write for a user acl set read access for(user id, true) acl set write access for(user id, true) todo acl = acl todo save шаг 4 – написание функций облачного кода почему облачный код облачный код выполняется на стороне сервера с помощью javascript, что позволяет разработчикам добавлять пользовательскую логику, триггеры и валидации без управления собственным веб сервером вы можете захотеть обработать дополнительную серверную логику или выполнить проверки перед сохранением данных пример функции ниже приведен пример на javascript пока ваш rails сервер обрабатывает основное приложение, вы все равно можете использовать облачный код для обработки данных parse cloud define('calculatetextlength', async (request) => { const { text } = request params; if (!text) { throw new error('no text provided'); } return { length text length }; }); развертывание развертывание через back4app cli или из панели управления back4app облачный код – это удобный способ инкапсулировать логику, которая общая для всех клиентов, независимо от того, какие языки программирования они используют с поддержкой модулей на основе node (npm) вы можете бесшовно интегрировать внешние пакеты шаг 5 – настройка аутентификации включить аутентификацию пользователей back4app управляет регистрацией пользователей, входами и сессиями с помощью встроенного класса пользователя parse вы можете создать пользователя с помощью rest вызова или через любой официальный sdk curl x post \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"username" "john", "password" "secretpass"}' \\ https //parseapi back4app com/users социальный вход вы можете интегрировать потоки входа через facebook, google или apple каждый провайдер имеет немного другой подход, но основной принцип заключается в обмене токенами с parse ознакомьтесь с официальной документацией по социальному входу https //www back4app com/docs/platform/sign in with apple для получения подробной информации о том, как интегрировать это в ваше rails приложение шаг 6 – обработка хранения файлов настройка хранения файлов использовать parse для файлов так же просто, как загружать их через api parse если вы используете клиент parse ruby file data = file open('path/to/image jpg') parse file = parse file new('image jpg', file data) begin parse file save puts "file uploaded #{parse file url}" rescue => e puts "error uploading file #{e message}" end пример затем вы можете прикрепить этот файл к объекту photo obj = parse object new('photo') photo obj\['imagefile'] = parse file photo obj save шаг 7 – подтверждение электронной почты и сброс пароля включите подтверждение электронной почты в вашей панели управления back4app в разделе настройки электронной почты настройте сброс пароля путем настройки шаблона электронной почты и параметров домена запускайте потоки электронной почты автоматически после регистрации пользователя или когда пользователь запрашивает сброс пароля это обеспечивает повышенную безопасность и помогает подтвердить действительность владения электронной почтой шаг 8 – планирование задач с помощью облачных заданий облачные задания если вы хотите автоматизировать задачи, такие как очистка данных или отправка ежедневных сводок, используйте облачные задания parse cloud job('cleanupoldtodos', async (request) => { const todo = parse object extend('todo'); const query = new parse query(todo); const now = new date(); const thirty days = 30 24 60 60 1000; const cutoff = new date(now thirty days); query lessthan('createdat', cutoff); try { const oldtodos = await query find({ usemasterkey true }); await parse object destroyall(oldtodos, { usemasterkey true }); return `deleted ${oldtodos length} old todos `; } catch (err) { throw new error('error during cleanup ' + err message); } }); вы можете запланировать такие задания в панели управления back4app в разделе настройки сервера > фоновая работа для выполнения ежедневно или с желаемыми интервалами шаг 9 – интеграция вебхуков вебхуки позволяют вашему приложению back4app отправлять данные на внешний url, когда происходят определенные события вы можете передавать новые или обновленные данные объектов в другую систему — например, в stripe или slack перейдите в раздел больше > вебхуки в вашей панели управления back4app добавьте новый вебхук указывающий на ваш внешний url (например, маршрут в вашем контроллере rails) укажите событие которое вызывает вебхук если вы предпочитаете, вы также можете вызвать вебхук из cloud code, сделав http запрос в функции beforesave или aftersave шаг 10 – изучение панели администратора back4app приложение back4app admin app предлагает удобный способ для не технических команд или клиентов выполнять операции crud с вашими данными back4app этот интерфейс устраняет необходимость в прямых изменениях кода или использовании панели управления parse для базовых задач где это найти вы можете включить приложение администратора из вашей панели управления, перейдя в дополнительно > приложение администратора и нажав включить приложение администратора особенности после включения вы можете создавать и управлять данными без написания запросов мониторить журналы, планировать фоновые задачи и обрабатывать push уведомления (если включено) обеспечить доступ на основе ролей для членов команды для более безопасного редактирования заключение поздравляем! вы узнали, как создать бэкенд для 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 для современных веб приложений удачного кодирования!