Quickstarters
Feature Overview
如何为Ruby构建后端?
32 分
介绍 在本教程中,您将发现 如何使用 back4app 构建 ruby 的后台 。 我们将逐步了解 back4app 的基本功能,如数据库管理、云代码函数、rest 和 graphql api、用户身份验证以及实时查询(实时查询)。 通过利用 ruby 编程语言和 back4app,您将获得一个安全、可扩展且强大的后台,能够轻松与您的软件开发生态系统集成。 这种方法通过使用基于 parse 的开源网络平台来节省时间和精力。您将看到如何通过快速开发原则加速开发项目。 在此过程中,您将学习使用高级安全功能、使用云作业调度任务以及为外部集成设置 webhook。 到最后,您将准备好构建一个 web 应用程序框架结构,并将其扩展到生产应用程序。 您将能够 将 ruby 与 back4app 集成,以实现数据模型、面向对象逻辑和实时数据 利用最佳实践的开发过程,以模型视图控制器(mvc)风格或您喜欢的任何其他架构进行应用程序开发 通过处理安全用户身份验证、云代码触发器等,增强您作为后端开发人员的角色 进一步完善您的 web 应用程序,以满足现实世界的需求,利用 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 有助于管理您的 web 应用程序框架 或 开发项目 bundler 官方文档 https //bundler io/ 在开始之前,请确保您具备所有这些先决条件。创建您的 back4app 项目并准备好 ruby 环境将提供顺畅的教程体验 步骤 1 – 在 back4app 上创建新项目并连接 为什么这一步很重要 一个新的 back4app 项目是你 应用程序开发 的基础。它托管你的数据库,管理用户身份验证,并提供运行 云代码 的环境。 创建一个新项目 登录到 back4app。 在你的 back4app 仪表板中点击 新应用 。 给你的应用命名(例如,“ruby 后端 教程”)。 安装 parse sdk 并连接到 back4app ruby 的 parse sdk 帮助你与 back4app 的后端进行交互。你可以通过 gem 安装它: 步骤 2 – 设置数据库 1\ 创建数据模型 在 back4app 中, 类 就像一个数据库表。例如,你可以创建一个 “todo” 类来存储任务。你可以从 ruby 动态创建类,或者在仪表板中定义它们以进行更精细的控制。 2\ 使用 ai 代理创建数据模型 在你的应用仪表板中打开 ai 代理 用简单的语言描述你的数据模型 (例如,“一个包含标题和 iscompleted 字段的 todo 应用”)。 让 ai 代理自动创建你的模式 3\ 使用 ruby(parse sdk)读取和写入数据 下面是使用 ruby sdk 在“todo”类中创建新记录的简单示例: 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 端点,用于高级 web 应用程序 mutation { createtodo(input { fields { title "clean the house" iscompleted false } }) { todo { objectid title iscompleted } } } 6\ 使用实时查询(可选) 在 back4app 仪表板(服务器设置)中启用 实时查询 ,如果您的环境支持 websocket 连接,则可以从 ruby 脚本中订阅。您还可以在支持并发的 web 应用程序框架 中使用它们进行实时更新。 步骤 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 这确保只有所有者可以读取/写入该特定的 todo。 步骤 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\ 仪表板设置 在您的应用程序的 应用设置 中启用用户身份验证。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\ 云作业的作用 云作业定期执行任务,例如清理旧数据或发送摘要电子邮件。 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 – 集成 webhooks 1\ 定义 webhooks 允许您在 back4app 中发生某些事件时向外部服务发送 http 请求。这对于链接到第三方服务或在其他 编程语言 中触发任务非常有用。 2\ 配置 转到您的应用的 back4app 控制面板 > 更多 > webhooks , 并添加一个带有您外部服务 url 的新 webhook。 3\ 示例 每当创建新的 “待办事项” 时,将数据发送到 stripe 或 slack。或者,您可以在云代码中定义触发器,并在这些触发器内发出 http 请求。 步骤 10 – 探索 back4app 管理面板 1\ 在哪里找到它 在您的应用仪表板中,点击 更多 > 管理员应用 , 然后启用它。 2\ 功能 无代码的数据管理图形界面。 用于分析日志、调度后台作业等的工具。 基于角色的访问控制,允许您为非技术用户提供安全的内容管理方式。 结论 您已经在 back4app 上为您的 ruby 应用构建了一个安全且可扩展的后端,使用 ruby 编程语言与 parse api 连接。您的开发过程现在包括: 一个 数据库 ,具有高级安全功能(acls,clps)。 实时 数据更新通过实时查询。 云代码 触发器用于自定义业务逻辑。 用户认证 和文件处理。 定时任务 与云作业和外部服务的 webhooks。 一个用户友好的 管理员面板 用于数据管理。 有了这个基础,您可以扩展您的网络应用程序或其他编程语言项目,以满足现实世界的需求。 无论您是经验丰富的后端开发人员还是刚刚开始使用 ruby,back4app 提供了一个面向对象且易于使用的平台,便于快速开发。 随时集成其他 api 或功能,并进一步探索自定义,以符合模型视图控制器 (mvc) 模式或其他架构风格。 下一步 通过添加高级缓存、基于角色的访问或性能优化来 完善您的生产环境 在数据类之间添加更复杂的关系 以支持现实世界的用例。 探索官方 back4app 文档 以获取安全性、性能洞察和分析。 尝试其他开源网络框架 以扩展您应用程序的功能。 享受使用 ruby 和 back4app 构建更强大和功能丰富的 网络应用程序 !