Quickstarters
Feature Overview
如何为iOS构建后端?
38 分
介绍 在本教程中,您将学习 如何为 ios 构建后台 ,使用 back4app https //www back4app com 我们将逐步介绍集成 back4app 的基本功能——如数据库管理、云函数、rest 和 graphql api、用户身份验证、文件存储和实时查询(实时查询)——以创建一个安全、可扩展和强大的 ios 应用程序后台。 back4app 的 后端即服务 产品帮助减少设置 服务器端 基础设施的复杂性,同时加快开发速度。 您可以以灵活的 nosql 数据库样式格式存储数据,管理用户帐户,添加 推送通知 , 并在构建自定义解决方案所需时间的一小部分内应用高级访问控制。 这意味着您可以专注于改善 用户体验 和实现核心功能,而不必担心服务器维护或配置。 到本教程结束时,您将拥有一个可以适应现实场景、可扩展以容纳增加的流量,并可以扩展更复杂逻辑或 第三方服务 的现成后台。 您将能够为您的 ios 应用程序提供可靠的后台,加速您的 开发过程 ,并以更少的努力增强您的整体 用户界面 。 前提条件 要完成本教程,您需要 一个 back4app 账户和一个新的 back4app 项目 开始使用 back4app https //www back4app com/docs/get started/new parse app 如果您没有账户,可以免费创建一个。请按照上面的指南准备好您的项目。 基本的 ios 开发环境 您可以使用 xcode(版本 13 0 或更高)进行开发。 安装 xcode https //developer apple com/xcode/ swift 包管理器 或 cocoapods 用于添加 parse swift 请遵循 parse swift github 指南 https //github com/netreconlab/parse swift 获取安装细节。 熟悉 swift 和 ios 概念 苹果的 swift 文档。 https //docs swift org/swift book/ 如果您是 swift 或 ios 的新手,请在开始之前查看官方文档或基本的 ios 教程。 拥有一个功能正常的 ios 环境和 xcode,以及您的免费 back4app 账户,将帮助您更顺利地进行操作。 步骤 1 – 在 back4app 上创建新项目并连接 为什么要创建新项目? 一个新的 back4app 项目构成了您的 后端开发 的基础。它提供了您所需的所有工具——数据库、api、身份验证、云函数——以便快速和安全地 构建后端 。 一旦创建,您的新项目将出现在您的 back4app 控制面板中。 安装 parse swift sdk 和配置密钥 back4app 在后台依赖于 parse 平台。对于 ios,请使用 parse swift sdk: 1 获取您的 parse 密钥 在 back4app 控制面板中,转到“应用设置”或“安全性与密钥”以查找: 应用程序 id 客户端密钥 (如果适用,则为 swift 密钥) 服务器 url (通常是 https //parseapi back4app com ) 2 添加 parse swift sdk 如果您使用的是 swift 包管理器 // in package swift or xcode's swift packages package( url "https //github com/netreconlab/parse swift git", from "5 0 0" ) 如果您使用 cocoapods , 请在您的 podfile pod 'parseswiftog' 然后运行 pod install 3 初始化 parse 在您的 appdelegate swift (或主 swiftui 应用文件) 中,调用 parseswift initialize( ) 并使用您的凭据 import swiftui import parseswift @main struct myapp app { init() { do { try await parseswift initialize( applicationid "your app id", clientkey "your client key", // optional serverurl url(string "https //parseapi back4app com")! ) } catch { print("error initializing parse \\\\(error)") } } var body some scene { windowgroup { contentview() } } } 恭喜!您的 ios 应用程序现在已连接到 back4app,所有请求或数据交易将自动通过 parse swift 进行处理。 步骤 2 – 设置数据库 1 创建数据模型 back4app 使用一个 schema 方法,其中每个类/表都可以从仪表板进行管理。假设我们想要创建一个 todo 类: 在您的 back4app 控制台中,前往 “数据库” 。 点击 “创建新类” , 命名为 todo , 并添加像 title (字符串) 和 iscompleted (布尔值) 的列。 2 使用 ai 代理创建数据模型 back4app 的 ai 代理可以加速您的模式设计: 在您的仪表板中打开 ai 代理 。 用简单的语言描述 您的数据模型(例如,“创建一个新的 todo 类,包含标题和 iscompleted 字段”)。 让 ai 自动为您构建模式。 3 使用 swift sdk 读取和写入数据 使用 parse swift , 在代码中定义您的数据结构。例如 import parseswift struct todo parseobject { // parseobject protocol var objectid string? var createdat date? var updatedat date? var acl parseacl? var originaldata data? // custom properties var title string? var iscompleted bool? } // saving func createtodoitem(title string, iscompleted bool) async { var todo = todo() todo title = title todo iscompleted = iscompleted do { let saved = try await todo save() print("saved objectid \\\\(saved objectid ?? "")") } catch { print("error saving \\\\(error)") } } // querying func fetchtodos() async { do { let todos = try await todo query() find() print("fetched \\\\(todos count) todos") } catch { print("error fetching \\\\(error)") } } 4 使用 rest api 读取和写入数据 或者,您可以使用 rest 调用。例如,创建一个 todo 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 '{"title" "buy groceries", "iscompleted" false}' \\ https //parseapi back4app com/classes/todo 5 使用 graphql api 读取和写入数据 back4app 还支持 graphql。以下是一个变更示例: mutation { createtodo(input { fields { title "clean house" iscompleted false } }) { todo { objectid title iscompleted } } } 6 使用实时查询(可选) back4app 支持 实时 更新通过实时查询。对于 swift: let subscription = try? todo query("iscompleted" == false) subscribe() subscription? handleevent({ event in switch event { case created(let newtodo) print("new todo created \\\\(newtodo)") case updated(let updatedtodo) print("todo updated \\\\(updatedtodo)") default break } }) 步骤 3 – 使用 acl 和 clp 应用安全性 1 概述 访问控制列表 https //www back4app com/docs/security/parse security (acls) 控制每个对象的权限,而 类级权限 (clps) 为整个类设置默认值。 2 步骤 类级权限 在 back4app 仪表板中,打开一个类(例如, 待办事项 ),然后点击“安全”选项卡。您可以将读取/写入权限限制为仅经过身份验证的用户或角色。 代码中的 acls 当您保存一个 parseobject 时,可以分配一个 acl: 调整这些设置以确保您的数据仅被正确的用户访问。 步骤 4 – 编写云代码函数 1 为什么选择云代码? 云代码 是为您的 ios 应用添加服务器端逻辑的最佳选择。您可以将敏感逻辑或验证与客户端隔离,集成外部 api,并在服务器上运行后台任务。 2 示例函数 在本地(或在线编辑器)创建一个 main js 文件,包含一个函数: parse cloud define("calculatetextlength", async (request) => { const { text } = request params; if (!text) { throw "no text provided"; } return { length text length }; }); 3 部署 使用 back4app cli https //www back4app com/docs/local development/parse cli 或在仪表板中的 cloud code > 函数 编辑器。 安装 cli: 配置 你的账户密钥: 部署 4 从 ios 调用 cloud code task { do { if let result = try await parsecloud callfunction("calculatetextlength", with \["text" "hello back4app"]) as? \[string int] { print("text length \\\\(result\["length"] ?? 0)") } } catch { print("cloud code error \\\\(error)") } } 5 使用 npm 模块 在你的 package json (在 cloud code 中),列出你的依赖项。然后在 main js const axios = require('axios'); parse cloud define("fetchposts", async () => { // use axios here }); 步骤 5 – 配置身份验证 1 启用用户身份验证 在你的 back4app 仪表板中,已经提供了 user 类。你可以设置电子邮件验证、密码重置等。 2 ios 代码示例 注册 登录 3 社交登录 您可以通过 parse swift 集成社交登录(google、apple、facebook)。请参考 社交登录文档 https //www back4app com/docs/platform/sign in with apple 获取详细说明。 步骤 6 – 处理文件存储 1 设置文件存储 通过 parse 上传和检索文件,例如图像或文档。对于 swift: struct gamescore parseobject { var objectid string? var createdat date? var updatedat date? var acl parseacl? var originaldata data? var score int? var picture parsefile? } func uploadimagedata( data data) async { var file = parsefile(name "photo jpg", data data) do { file = try await file save() print("file url \\\\(file url ?? "")") } catch { print("error uploading file \\\\(error)") } } 2 检索文件 func fetchimage(file parsefile) async { do { let fetched = try await file fetch() print("fetched localurl \\\\(fetched localurl? absolutestring ?? "")") } catch { print("error fetching file \\\\(error)") } } 3 安全考虑 您可以在 back4app 设置或应用的 parse config 文件中配置文件权限。例如,限制谁可以上传或删除文件。 步骤 7 – 邮件验证和密码重置 1 为什么要验证? 电子邮件验证确保用户拥有提供的电子邮件地址。密码重置流程允许用户安全地恢复账户。 2 在 back4app 中配置 前往 应用设置 > 用户邮箱设置 启用邮箱验证 配置 发件邮箱 , 邮件模板和可选的自定义域名 3 实施 task { do { try await user requestpasswordreset(email "johnny\@example com") print("password reset email sent") } catch { print("error resetting password \\\\(error)") } } 步骤 8 – 使用云作业调度任务 1 概述 使用 云作业 来自动化任务,例如删除旧记录或发送每日通知。它们在 服务器端 , 而不是直接由客户端触发 2 示例 parse cloud job("cleanupoldtodos", async (request) => { const todo = parse object extend("todo"); const query = new parse query(todo); // older than 30 days 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 `; }); 在 back4app 仪表板的 服务器设置 > 后台作业 中安排此作业以定期运行。 步骤 9 – 集成 webhooks 1 定义 webhooks 允许您的应用在特定事件发生时将数据发送到外部服务。例如,当创建一个 待办事项 时通知 slack 频道。 2 配置 仪表板 转到更多 > webhooks 并选择“添加 webhook。” 设置端点 例如 https //my server com/webhook endpoint 事件触发器 例如“类中有新记录 待办事项 。” 3 代码示例 parse cloud aftersave("todo", async (request) => { const { object } = request; // make an http post to an external url // containing the new todo details }); 步骤10 – 探索back4app管理面板 1 在哪里找到它 您的 管理面板 可以通过back4app仪表板中的“更多” > “管理应用”访问。创建一个管理员用户并选择一个子域以便于访问。 2 功能 数据浏览 以用户友好的格式查看和编辑类。 日志 检查服务器日志和云代码日志。 分析 监控使用情况、推送通知等。 结论 在本教程中,您学习了 如何为 ios 构建后端 ,使用 back4app 和 parse swift sdk。 您集成了可扩展的数据库,使用 acl 和 clp 实现了安全性,编写了云代码函数,配置了用户身份验证,处理了文件存储,甚至安排了后台任务。 通过这些基本功能,您可以为您的 ios 移动应用程序 提供可靠的后端,同时专注于 用户体验 和独特功能。 下一步 探索高级角色 和多级安全的自定义访问控制。 集成高级功能 ,如推送通知、地理查询或外部数据源。 查看 back4app 的官方文档 ,获取性能提示、日志分析或实时分析。 尝试其他教程 ,如聊天应用程序、物联网集成或电子商务扩展。 通过利用 back4app,您获得了一个 开源 的平台,这是一个 很好的选择 ,可以减少复杂性, 轻松存储数据 ,并将 实时 功能集成到您的 ios 应用中。实施这些步骤使您能够专注于设计、用户流程或业务逻辑,迅速创建一个强大的 ios 应用的后端 。