Quickstarters
Feature Overview
Как создать бэкенд для Ruby?
35 мин
введение в этом учебном пособии вы узнаете как создать бэкенд для ruby с использованием back4app мы рассмотрим основные функции back4app, такие как управление базами данных, функции cloud code, rest и graphql api, аутентификация пользователей и запросы в реальном времени (live queries) используя язык программирования ruby и back4app, вы получаете безопасный, масштабируемый и надежный бэкенд, который легко интегрируется с вашей экосистемой разработки программного обеспечения этот подход экономит время и усилия, используя платформу с открытым исходным кодом, построенную на parse вы увидите, как ускорить проекты разработки с помощью принципов быстрого развития в процессе вы научитесь использовать расширенные функции безопасности, планировать задачи с помощью cloud jobs и настраивать вебхуки для внешних интеграций к концу вы будете готовы создать структуру веб приложения и расширить ее для производственных приложений вы сможете интегрировать ruby с back4app для моделей данных, объектно ориентированной логики и данных в реальном времени использовать лучшие практики процесса разработки для разработки приложений в стиле модель представление контроллер (mvc) или любой другой архитектуре, которую вы предпочитаете укрепить свою роль как разработчика на стороне сервера, обрабатывая безопасную аутентификацию пользователей, триггеры cloud code и многое другое дальше уточнить свои веб приложения, чтобы удовлетворить реальные потребности, используя гибкие функции back4app предварительные требования аккаунт back4app и новый проект back4app начало работы с back4app https //www back4app com/docs/get started/new parse app зарегистрируйтесь бесплатно, если у вас нет аккаунта локальная среда ruby у вас должна быть установлена ruby https //www ruby lang org/en/documentation/installation/ обычно рекомендуется ruby 2 6 или выше знание языка программирования ruby базовые знания синтаксиса ruby, объектно ориентированных концепций и общего использования языков программирования bundler (необязательно, но рекомендуется) bundler помогает управлять гемами для вашего веб приложения или разработки проектов официальная документация bundler https //bundler io/ убедитесь, что у вас есть все эти предварительные требования перед началом создание вашего проекта back4app и подготовка вашей среды ruby обеспечат плавный опыт прохождения учебника шаг 1 – создание нового проекта на back4app и подключение почему этот шаг важен новый проект back4app является основой для вашей разработки приложений он размещает вашу базу данных, управляет аутентификацией пользователей и предоставляет среду для выполнения cloud code создать новый проект войдите в back4app нажмите новый приложение в вашей панели управления back4app дайте вашему приложению имя (например, “ruby backend tutorial”) установите parse sdk и подключитесь к back4app parse sdk для ruby помогает вам взаимодействовать с бэкендом back4app вы можете установить его через gem шаг 2 – настройка базы данных 1\ создание модели данных в back4app, класс похож на таблицу базы данных например, вы можете создать класс “todo” для хранения задач вы можете создавать классы на лету из ruby или определять их в панели управления для более точного контроля 2\ создание модели данных с помощью ai агента откройте ai агента в вашей панели управления приложением опишите вашу модель данных простым языком (например, “приложение todo с полями title, iscompleted”) позвольте ai агенту создать вашу схему автоматически 3\ чтение и запись данных с использованием ruby (parse sdk) ниже приведен простой пример создания новой записи в классе “todo” с использованием ruby sdk require relative 'parse config' \# create a todo object todo = parse object new("todo") todo\["title"] = "buy groceries" todo\["iscompleted"] = false saved todo = todo save puts "todo saved with objectid #{saved todo\['objectid']}" \# query todos query = parse query new("todo") results = query get puts "fetched #{results size} todos " results each do |t| puts "title #{t\['title']}, completed #{t\['iscompleted']}" end 4\ чтение и запись данных с использованием rest api вы также можете создавать и извлекать записи с помощью rest интерфейса 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" "buy groceries", "iscompleted" false}' \\ https //parseapi back4app com/classes/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" "buy groceries", "iscompleted" false}' \\ https //parseapi back4app com/classes/todo 5\ чтение и запись данных с использованием graphql api back4app предлагает конечную точку graphql для продвинутых веб приложений mutation { createtodo(input { fields { title "clean the house" iscompleted false } }) { todo { objectid title iscompleted } } } 6\ работа с живыми запросами (по желанию) включите живые запросы в панели управления back4app (настройки сервера) и подписывайтесь из вашего ruby скрипта, если ваша среда поддерживает соединения websocket вы также можете использовать их для обновлений в реальном времени в веб приложении , которое поддерживает параллелизм шаг 3 – применение безопасности с помощью acl и clp 1\ обзор acl (списки управления доступом) и clp (разрешения на уровне класса) защищают ваши данные объектно ориентированным образом acl позволяет вам решать, кто может читать или записывать каждую запись clp позволяет вам управлять разрешениями для целого класса 2\ установка разрешений на уровне класса (clp) и acl перейдите в раздел база данных вашего приложения и выберите свой класс, например, “todo ” настройте clp вашего класса в разделе “безопасность” или “разрешения на уровне класса ” чтобы установить acl на запись owner = parse user current todo = parse object new("todo") acl = parse acl new(owner) acl public read = false acl public write = false todo acl = acl todo\["title"] = "private task" todo save это гарантирует, что только владелец может читать/писать эту конкретную задачу шаг 4 – написание функций облачного кода 1\ зачем нужен облачный код облачный код помогает встроить бизнес логику и валидации прямо на сервер это идеально подходит для обеспечения целостности данных и выполнения задач, не доступных клиентам 2\ пример функции в вашем проекте main js (или аналогичном) на back4app вы можете определить облачную функцию parse cloud define('calculatetextlength', (request) => { const { text } = request params; if (!text) { throw 'no text provided'; } return { length text length }; }); примечание хотя наше основное приложение использует ruby, облачный код в parse основан на javascript так вы встраиваете серверную логику на back4app 3\ развертывание back4app cli панель управления back4app скопируйте/вставьте вашу функцию в облачный код > функции и нажмите развернуть 4\ модули npm вы можете установить модули npm (например, axios) для вашей среды облачного кода например npm install axios в вашем main js , подключите его и выполняйте внешние api вызовы по мере необходимости шаг 5 – настройка аутентификации 1\ настройки панели управления включите аутентификацию пользователей в настройках вашего приложения app settings back4app использует parse user для управления пользователями 2\ регистрация / вход с помощью ruby require relative 'parse config' \# signing up a user user = parse user new({ username "alice", password "secret123", email "alice\@example com" }) begin user sign up puts "user signed up successfully" rescue => e puts "error #{e message}" end \# logging in a user logged in user = parse user login("alice", "secret123") puts "logged in as #{logged in user username}" 3\ социальный вход для интеграции социальных входов (facebook, google, apple) обратитесь к документации по социальному входу https //www back4app com/docs/platform/sign in with apple подробности реализации различаются для каждого провайдера шаг 6 – обработка хранения файлов 1\ настройка хранения файлов back4app управляет загрузкой файлов через объект parse file в ruby file = parse file new("image png", file read("/path/to/image png")) saved file = file save puts "file saved at #{saved file url}" \# attach file to an object photo = parse object new("photo") photo\["imagefile"] = saved file photo save puts "photo object created with file reference " 2\ пример пользователи могут загружать изображения, документы или другие файлы получите url, чтобы отобразить его на вашем фронтенде или в других сервисах 3\ соображения по безопасности настройте ваше приложение, чтобы ограничить загрузку файлов только для аутентифицированных пользователей, если это необходимо шаг 7 – подтверждение электронной почты и сброс пароля 1\ почему это важно подтверждение электронной почты обеспечивает действительные адреса электронной почты для новых аккаунтов сброс пароля позволяет вашим пользователям безопасно восстанавливать свои аккаунты 2\ конфигурация панели управления back4app включите подтверждение электронной почты настройте пользовательские шаблоны для подтверждения и сброса пароля 3\ пример кода из ruby вы можете запросить сброс пароля 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 '{"email" "alice\@example com"}' \\ https //parseapi back4app com/requestpasswordreset это отправляет ссылку для сброса пароля на электронную почту пользователя шаг 8 – планирование задач с помощью облачных заданий 1\ что делают облачные задания задачи cloud выполняют периодические задачи, такие как очистка старых данных или отправка сводных электронных писем 2\ пример задачи 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); const oldtodos = await query find({ usemasterkey true }); await parse object destroyall(oldtodos, { usemasterkey true }); return `deleted ${oldtodos length} old todos `; }); запланируйте это в разделе настройки приложения > настройки сервера > фоновые задачи в вашей панели управления back4app шаг 9 – интеграция вебхуков 1\ определение вебхуки позволяют вам отправлять http запросы во внешние сервисы, когда определенные события происходят в back4app это отлично подходит для связи с сторонними сервисами или запуска задач на других языках программирования 2\ конфигурация перейдите в панель управления вашего приложения back4app > дополнительно > вебхуки , и добавьте новый вебхук с url вашего внешнего сервиса 3\ пример отправляйте данные в stripe или slack каждый раз, когда создается новая «задача» в качестве альтернативы вы можете определить триггеры в облачном коде и делать http запросы внутри этих триггеров шаг 10 – изучение панели администратора back4app 1\ где это найти в вашей панели управления приложением нажмите больше > админ приложение , затем включите его 2\ функции графический интерфейс для управления данными без кода инструменты для анализа журналов, планирования фоновых задач и многого другого контроль доступа на основе ролей, позволяющий предоставлять нетехническим пользователям безопасный способ управления контентом заключение вы создали безопасный и масштабируемый бэкенд для вашего ruby приложения на back4app, используя язык программирования ruby для подключения к parse api ваш процесс разработки теперь включает база данных с расширенными функциями безопасности (acl, clp) обновления данных в реальном времени через live queries триггеры cloud code для пользовательской бизнес логики аутентификация пользователей и обработка файлов запланированные задачи с помощью cloud jobs и webhooks для внешних сервисов удобная панель администратора для управления данными с этой основой вы можете расширить свои веб приложения или проекты на других языках программирования, чтобы соответствовать требованиям реального мира будь вы опытным разработчиком бэкенда или только начинаете с ruby, back4app предоставляет объектно ориентированную и простую в использовании платформу для быстрого развития не стесняйтесь интегрировать дополнительные api или функции и исследовать дальнейшие настройки, чтобы соответствовать шаблонам модели представления контроллера (mvc) или другим архитектурным стилям следующие шаги уточните свою производственную среду добавив расширенное кэширование, доступ на основе ролей или оптимизацию производительности добавьте более сложные отношения между классами данных, чтобы поддерживать реальные сценарии использования изучите официальную документацию back4app по безопасности, аналитике производительности и аналитике экспериментируйте с другими фреймворками с открытым исходным кодом для расширения возможностей вашего приложения наслаждайтесь созданием более надежных и богатых функциями веб приложений с ruby и back4app!