如何为Golang构建后端?
在本教程中,您将学习如何使用 Back4App 构建和测试完整的 Golang 后端。
我们将引导您集成 Back4App 的基本功能——如数据库管理、安全设置、用户身份验证、文件存储和云代码——以创建一个安全、灵活且可扩展的后端,能够与您的 Go http 服务器良好配合。
我们的重点将放在使用 Back4App 的 RESTful API 从我们的 Golang http 客户端连接到数据库,而不是使用专用的 Parse SDK,以便我们可以说明如何为您的新后端构建易于维护的处理函数。
您将看到这种方法相比从头开始设置自己的服务器降低了开发复杂性。
通过依赖 Back4App 的实时查询、文件存储和用户身份验证系统,您将加快后端创建过程。
到最后,您将知道如何构建一个安全的 Golang 后端,安排自动化任务,并集成外部 webhook。
您将为将此基础增强为生产就绪的应用程序或根据需要添加自定义逻辑做好充分准备。
- 对 Go 的 http 包和 RESTful API 的基本知识 熟悉如何编写 func 处理程序、解析错误消息、处理方法 POST 请求以及设置 http 本地主机服务器将有所帮助。
在继续之前,请确保您具备这些先决条件。此设置将简化您的体验,让您了解如何使用 Back4App 为 Golang 构建后端。
创建一个新的 Back4App 项目是您的第一步。您将在这里存储数据、配置文件存储、调度云函数并添加后台任务。这个后端项目将支撑所有后续步骤。
- 登录到您的 Back4App 账户.
- 点击 “新应用” 在您的 Back4App 控制面板中.
- 命名您的应用(例如,“Golang-Backend-Tutorial”)。
创建后,它将出现在您的控制面板中。这个应用程序现在是您基于 Back4App 的后端.
Back4App 提供 RESTful API 来创建、更新和删除数据。在 Golang 中,我们将使用 Go 标准库中的 http 客户端与这些端点进行通信.
找到您的 应用程序 ID 和 REST API 密钥,方法是前往您的 Back4App 应用的 设置 或 安全与密钥 部分:
您需要在每个请求头中包含这些凭据。我们将在下一步中通过使用POST、GET和其他HTTP请求连接到数据库时说明这一点。
要在Back4App中存储数据,您需要定义类(表)和列(字段)。例如,假设我们想要一个 Todo 类。您可以在Back4App仪表板中手动创建它:
- 转到您应用程序仪表板中的 数据库 部分。
- 创建一个名为“Todo”的新类。
- 添加诸如标题(字符串)和isCompleted(布尔值)等列。
您还可以通过从您的Golang应用程序发送带有新字段的对象来让系统自动创建列。
- 在您的应用仪表板中打开 AI代理。
- 描述您期望的数据模型(例如,“请创建一个新的Todo类,包含标题字段和isCompleted字段。”)。
- 接受 建议的架构。
这个方便的功能可以节省设计数据库架构的时间。
以下是一个基本示例,演示如何使用 Go 的 http 包创建(POST 方法)和获取(GET 方法)数据。假设您将您的 APPLICATION_ID 和 REST_API_KEY 设置为环境变量。
在这些示例中,我们创建一个http客户端,添加必要的头信息,并处理响应代码和错误消息。请记得替换 YOUR_APPLICATION_ID 和 YOUR_REST_API_KEY 为您Back4App项目中的实际密钥。
Back4App还提供了一个GraphQL端点,地址为 https://parseapi.back4app.com/graphql. 您可以使用流行的Go GraphQL客户端库(如 Machine Box graphql) 来执行查询或变更。这比原始REST调用更具结构化。
如果您希望在应用中看到实时更新,可以在Back4App仪表板中启用实时查询。Golang没有官方的Parse实时查询库。然而,您可以实现自己的websocket连接,以监听来自 wss://YOUR_SUBDOMAIN.b4a.io 的实时查询更新。此功能对于需要立即数据同步的协作应用非常有用。
Back4App 提供访问控制列表 (ACLs) 和类级权限 (CLPs) 来保护您的数据。ACLs 在每个对象上定义,而 CLPs 定义整个类的总体规则。
- 转到您应用的 数据库 视图在 Back4App 中。
- 选择一个类 (例如, 待办事项)。
- 点击 类级权限 并为不同用户角色或公共访问设置读/写权限。
您可以在通过 REST 调用创建或更新对象时传递 ACL。这确保只有某些用户或角色可以读/写数据。有关更多详细信息,请访问 应用安全指南。
云代码允许您运行服务器端函数、触发器或验证—无需管理自己的服务器。您可以添加高级业务逻辑或从服务器端集成外部 API。
一个简单的示例是一个计算文本长度的函数。在您的 main.js 文件中,在 Back4App 仪表板上:
通过以下方式部署云代码:
- Back4App CLI:
- Back4App Dashboard 在 Cloud Code > Functions. 将您的代码粘贴到 main.js 编辑器中,然后点击 部署.
您可以通过 http 客户端通过 REST 调用云函数:
Back4App 使用一个 用户 类进行身份验证。当您通过 REST 创建新用户时,后端将安全地存储凭据并生成会话令牌。
使用返回的会话令牌进行后续需要用户权限的请求。在 Go 中,您可以像之前演示的那样,从 http 客户端发送相同类型的 HTTP 请求。
对于 Google 或 Facebook 等社交登录,您需要在 Back4App 上配置 OAuth 设置。这些流程通常涉及交换令牌。请查阅 使用 Apple 登录 / 社交登录文档 以获取详细信息。
您可以通过将文件作为 base64 编码数据或 multipart/form-data 发送到 Back4App 来存储文件:
上传后,您可以通过存储返回的文件 URL 或文件指针将文件附加到对象。在 Go 中,以相同的方式创建 http 请求——只需确保正确编码文件内容。
邮件验证确保用户控制所提供的电子邮件,而密码重置帮助他们恢复账户。这两个功能增强了安全性和信任。
- 前往您的 Back4App 控制面板.
- 在 电子邮件设置, 启用验证邮件.
- 如有需要,自定义您的电子邮件模板。
当用户注册时,系统会自动向他们发送验证邮件。
使用 requestPasswordReset REST 端点 来启动密码重置:
云作业按计划运行,以自动化任务,例如清理过期数据或发送每周通讯。
部署此作业并在您的 Back4App 控制面板 > 应用设置 > 服务器设置 > 后台作业 中调度它。
Webhooks 允许您在某些事件发生时通知外部服务。例如,当创建新的 Todo 项时,您可能会发送 Slack 警报。
- 转到 Webhooks 部分在您的 Back4App 控制面板中。
- 配置您的端点(例如 https://your-external-service.com/webhook)。
- 分配触发器(例如,在 Todo) 上使用 afterSave。
如果您希望直接控制事件,您还可以通过编写 http 客户端请求从云代码触发外部 API。
Back4App 管理应用是一个点选界面,您可以与非技术团队成员共享,以管理数据。
- 前往 更多 > 管理应用 在您的 Back4App 控制面板中。
- 启用它并创建一个管理员用户。
使用您选择的子域名登录到一个简单的用户界面进行数据操作。这使您无需编写直接查询或自定义代码来执行基本操作。
在本指南中,您了解了如何使用 Back4App 为 Golang 构建后端。
您探索了如何通过 RESTful API 连接到数据库,使用 ACL 和 CLP 应用安全措施,使用云作业运行计划任务,使用 Webhooks 集成外部服务,以及设置用户身份验证和文件存储。
借助 Go 的 http 包和 Back4App 的强大功能,您可以构建一个强大的后端,节省时间并轻松扩展。
现在您已经掌握了基础知识,您可以扩展您的 Golang 处理程序函数逻辑,连接到新的 API 端点,并构建一个满足您需求的丰富应用。
- 优化您的 Golang 应用: 添加基于角色的访问等高级功能,或优化您的 http 服务器以用于生产。
- 了解更多关于实时查询的信息: 集成实时查询以用于协作应用。
- 探索高级 Back4App 文档: 微调您的 ACL、日志和分析。
- 整合第三方 API: 使用云代码或直接 Webhooks 扩展您的后端功能。