Quickstarters
Feature Overview
如何为 Objective-C 建立后端?
37 分
介绍 在本教程中,您将学习 如何使用 back4app 构建 objective c 的后端 。 我们将逐步介绍集成 back4app 的基本功能——如数据库管理、云代码函数、rest 和 graphql api、用户身份验证以及实时查询——以创建一个安全、可扩展且强大的后端,与您的 ios 应用无缝通信。 我们将使用开源的 parse ios sdk 来处理所有数据需求。 您将看到如何通过利用 back4app 的灵活环境来减少配置服务器、存储和安全所需的时间和精力。 本教程将展示 objective c 的代码示例,以便您可以输入与您典型的 xcode 工作流程对齐的文本。到最后,您将拥有一个生产就绪的移动应用的构建块,或者您可以进一步自定义以适应您的具体用例。 先决条件 要完成本教程,您需要: 一个 back4app 账户和一个新的 back4app 项目 开始使用 back4app。 https //www back4app com/docs/get started/new parse app 如果您没有账户,可以免费创建一个。请按照上面的指南准备好您的项目。 objective c 开发环境 确保您安装了最新版本的 xcode。 从 mac app store 下载 xcode。 https //apps apple com/us/app/xcode/id497799835 cocoapods 或 swift package manager 知识 (可选,但推荐) swift package manager 指南。 https //github com/parse community/parse sdk ios osx 熟悉 objective c、ios 应用基础或相关概念 苹果的 objective c 文档。 https //developer apple com/library/archive/documentation/cocoa/conceptual/programmingwithobjectivec/introduction/introduction html 在开始之前,请确保您具备所有这些先决条件,以便您的旅程顺利进行。 步骤 1 – 在 back4app 上创建新项目并连接 为什么要这一步? 一个新的 back4app 项目是你后端的基础。它为你提供了一个存储数据、运行云函数和管理安全性的地方。让我们开始创建一个 back4app 项目吧。 在 back4app 中创建项目 登录到你的 back4app 账户 。 点击 “新应用” 在你的 back4app 仪表板上。 命名你的应用 (例如,“objectivec backend tutorial”)并完成。 你将在 back4app 仪表板上看到你的新应用。这个应用将处理我们即将讨论的所有后端配置。 为 ios(objective c)安装 parse sdk back4app 与 parse ios sdk 密切合作。该 sdk 简化了数据操作、实时功能、用户身份验证等,适用于您的 ios 应用程序。 检索您的 parse 密钥 在您的 back4app 仪表板中,导航到 应用设置 或 安全性与密钥 找到您的 应用程序 id 和 客户端密钥 parse 服务器 url 通常是 https //parseapi back4app com 使用 swift package manager 或 cocoapods 集成 parse: cocoapods pod 'parse' swift package manager 打开 xcode,选择 “文件” > “添加包…” 添加仓库 https //github com/parse community/parse sdk ios osx 确认 parse 在您的 ios 目标中 在 objective c 中初始化 parse 打开 appdelegate m 并导入 parse 模块: @import parsecore; // or #import \<parse/parse h> \ (bool)application (uiapplication )application didfinishlaunchingwithoptions (nsdictionary )launchoptions { \[parse initializewithconfiguration \[parseclientconfiguration configurationwithblock ^(id\<parsemutableclientconfiguration> configuration) { configuration applicationid = @"your application id"; configuration clientkey = @"your client key"; configuration server = @"https //parseapi back4app com"; }]]; return yes; } 通过这个,您的 objective c 应用程序已安全连接到您的 back4app 后端。您现在可以在服务器上读取、写入和管理数据。 步骤 2 – 设置数据库 1\ 创建数据模型(模式) 在 back4app 中,数据存在于类中——就像数据库中的表。假设我们想要一个简单的 “待办事项” 类。您可以在 back4app 仪表板的 数据库 部分手动创建它: 添加字段,如标题(字符串)、iscompleted(布尔值)等。 2\ 使用ai代理创建数据模型 back4app提供ai代理来帮助生成架构: 在您的应用仪表板中打开 ai代理。 用自然语言描述您的数据模型 (例如:“创建一个新的待办事项类,包含标题、描述和截止日期。”)。 让ai为您自动设置一切 。 3\ 使用sdk读取和写入数据 使用objective c,我们可以使用pfobject来处理创建和查询操作。例如: \#import \<parse/parse h> // create a new todo item pfobject todo = \[pfobject objectwithclassname @"todo"]; \[todo setobject @"buy groceries" forkey @"title"]; \[todo setobject @no forkey @"iscompleted"]; \[todo saveinbackgroundwithblock ^(bool succeeded, nserror error) { if (succeeded) { nslog(@"todo saved successfully!"); } else { nslog(@"error saving todo %@", error localizeddescription); } }]; // query all todos pfquery query = \[pfquery querywithclassname @"todo"]; \[query findobjectsinbackgroundwithblock ^(nsarray nullable objects, nserror nullable error) { if (!error) { for (pfobject item in objects) { nslog(@"todo %@", item\[@"title"]); } } }]; 4\ 使用 rest 读取和写入数据 如果你更愿意跳过 sdk: 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 读取和写入数据 back4app 还提供了 graphql 接口: mutation { createtodo(input { fields { title "wash the car", iscompleted false } }) { todo { objectid title iscompleted } } } 6\ 使用实时查询(可选) 如果您的 ios 应用需要实时更新: 启用实时查询 在 服务器设置 中,位于 back4app 控制面板。 使用 livequeryserverurl 配置 parse \[parse initializewithconfiguration \[parseclientconfiguration configurationwithblock ^(id\<parsemutableclientconfiguration> configuration) { configuration applicationid = @"your app id"; configuration clientkey = @"your client key"; configuration server = @"https //parseapi back4app com"; configuration livequeryserverurl = @"wss\ //your subdomain b4a io"; }]]; 然后在您的 objective c 代码中订阅实时更新。这确保您的 ui 立即显示最新数据。 步骤 3 – 使用 acl 和 clp 应用安全性 访问控制列表 (acl) 和类级权限 (clp) back4app 使用 acl 和 clp 进行细粒度安全控制。clp 适用于整个类(表),而 acl 适用于单个对象。 设置类级权限 在 数据库 部分: 选择一个类(例如 “todo”)。 点击 类级权限 。 控制谁可以在类级别读取、写入或执行查询。 配置 acl acl 是对象级的。例如: pfacl acl = \[pfacl aclwithuser \[pfuser currentuser]]; \[acl setpublicreadaccess\ no]; \[acl setpublicwriteaccess\ no]; todo acl = acl; \[todo saveinbackground]; 此代码段仅限制当前用户的读/写权限。 步骤 4 – 编写云代码函数 为什么选择云代码? 云代码对于服务器端逻辑非常有用——处理触发器、验证或后台任务。它将您的代码隐藏在客户端之外,从而提高安全性。 示例函数 parse cloud define("calculatetextlength", async (request) => { const { text } = request params; if (!text) { throw "no text provided"; } return { length text length }; }); 此示例计算客户端提供的字符串的长度。 部署 使用 back4app cli https //www back4app com/docs/local development/parse cli 或者在仪表板中的 云代码 > 函数 部分来部署您的 main js 从 objective c 调用云代码 \[pfcloud callfunctioninbackground @"calculatetextlength" withparameters @{@"text" @"hello back4app"} block ^(id nullable result, nserror nullable error) { if (!error) { nsnumber len = result\[@"length"]; nslog(@"text length %@", len); } }]; 步骤 5 – 配置身份验证 解析用户 back4app 的 pfuser 类管理注册、登录和安全性。默认情况下,pfuser 处理密码哈希、会话和用户字段。 注册 pfuser user = \[pfuser user]; user username = @"alice"; user password = @"secret123"; user email = @"alice\@example com"; \[user signupinbackgroundwithblock ^(bool succeeded, nserror nullable error) { if (succeeded) { nslog(@"user signed up successfully!"); } else { nslog(@"sign up error %@", error localizeddescription); } }]; 登录 \[pfuser loginwithusernameinbackground @"alice" password @"secret123" block ^(pfuser nullable user, nserror nullable error) { if (user) { nslog(@"user logged in %@", user username); } else { nslog(@"login error %@", error localizeddescription); } }]; 社交登录 back4app 支持 facebook , apple , google , 等等。集成这些平台并相应地链接用户会话。查看 社交登录文档 https //www back4app com/docs/platform/sign in with apple 步骤 6 – 处理文件存储 上传和检索文件 您可以使用 pffileobject 存储图像、文档或其他二进制数据。 nsdata imagedata = uiimagepngrepresentation(\[uiimage imagenamed @"localimage"]); pffileobject parsefile = \[pffileobject fileobjectwithname @"image png" data\ imagedata]; pfobject photo = \[pfobject objectwithclassname @"photo"]; \[photo setobject\ parsefile forkey @"imagefile"]; \[photo saveinbackgroundwithblock ^(bool succeeded, nserror nullable error) { if (succeeded) { nslog(@"file uploaded successfully"); } }]; 要检索 pffileobject photofile = photo\[@"imagefile"]; \[photofile getdatainbackgroundwithblock ^(nsdata nullable data, nserror nullable error) { if (!error) { uiimage image = \[uiimage imagewithdata\ data]; // use the image in your ui } }]; 第 7 步 – 邮件验证和密码重置 为什么重要? 邮件验证有助于确保用户账户的有效性。密码重置提供了一个安全的流程,以防用户忘记其凭据。 仪表板配置 前往 邮件设置 在您的 back4app 仪表板中。 启用 邮件验证 和 密码重置 选项。 根据需要自定义电子邮件模板。 实施 如果您想在应用中手动触发密码重置: \[pfuser requestpasswordresetforemailinbackground @"alice\@example com" block ^(bool succeeded, nserror nullable error) { if (succeeded) { nslog(@"reset email sent!"); } else { nslog(@"error %@", error localizeddescription); } }]; 步骤 8 – 使用云作业调度任务 什么是云作业? 云作业自动化重复任务——例如清理旧数据、生成每日报告或发送批量通知。 每日清理作业示例 在您的 main js parse cloud job("cleanupoldtodos", async (request) => { const todo = parse object extend("todo"); const query = new parse query(todo); const cutoff = new date(date now() 30 24 60 60 1000); query lessthan("createdat", cutoff); const oldtodos = await query find({ usemasterkey true }); await parse object destroyall(oldtodos, { usemasterkey true }); return `deleted ${oldtodos length} old todos `; }); 然后在 应用设置 > 服务器设置 > 后台作业 例如,您可以选择每日运行。 步骤 9 – 集成 webhooks 概述 webhooks 允许 back4app 在事件发生时向外部服务发送 http 请求,例如对象创建。 配置 在您的 back4app 仪表板 > 更多 > webhooks 添加一个 新端点 (url)。 决定哪些事件触发 webhook(例如,在保存待办事项后)。 步骤 10 – 探索 back4app 管理面板 概述 “ back4app 管理面板 ”是一个简单的以模型为中心的界面,非技术利益相关者可以使用它进行 crud 操作,而无需编码。 激活 在您的仪表板中,转到 更多 > 管理员应用 并启用它。在创建第一个管理员用户后,您可以设置自定义子域以访问面板。 该面板可以简化日常任务,例如编辑记录、查看日志或分配角色,而无需深入原始数据库。 结论 您现在已经看到了 如何使用 back4app 构建 objective c 的后端 。在本教程中,您: 创建了一个新的 back4app 项目。 使用 parse ios sdk、rest 或 graphql 设置并读取数据库。 通过实时查询启用实时更新。 使用 acl 和 clp 应用安全性。 部署云代码以实现服务器端逻辑。 处理用户身份验证、文件存储、电子邮件验证和密码重置。 配置计划任务和网络钩子。 探索管理面板以便于数据管理。 这个基础使您能够在专注于前端体验的同时扩展您的 ios 应用程序。objective c 和 back4app 之间的协同作用是加速开发的有效方法,节省时间和精力。 下一步 增强您的后端 ,添加高级自定义逻辑、推送通知或分析。 集成外部服务 或开源库以实现社交登录、计费或消息传递。 查看官方 back4app 文档 以获取优化提示、最佳实践和深入教程。 构建真实世界的示例 ,例如聊天应用、游戏排行榜或基于位置的服务,使用这些模式。 我们希望您觉得本指南信息丰富!利用 back4app 和 parse ios sdk 可以帮助您开发一个强大且安全的系统,而无需繁重的服务器管理,让您专注于构建最佳的移动体验。