Quickstarters
CRUD Samples
如何使用 Golang 构建基本 CRUD 应用
31 分
介绍 在本指南中,您将学习如何使用golang开发一个基本的crud(创建、读取、更新和删除)应用程序。 本教程涵盖了有效管理数据所需的基本操作,利用back4app作为强大的后端服务。您将构建一个与back4app通过restful调用进行通信的golang服务器。 首先,您将创建并配置一个名为 basic crud app golang 的back4app项目。该项目将作为您应用程序的中央数据库。 接下来,您将通过建立详细的集合和字段来定义一个可扩展的数据库架构——可以手动完成,也可以借助back4app ai代理。这种设置确保您的系统为通过crud操作进行高效的数据处理做好准备。 随后,您将激活back4app管理应用程序,这是一个用户友好的工具,具有拖放功能来管理您的集合。这简化了记录的创建、读取、更新和删除。 最后,您将使用rest api将golang后端与back4app集成,同时在必要时实施强大的安全控制和用户身份验证。 在本教程结束时,您将拥有一个生产就绪的golang网络服务器,支持基本的crud操作,并与back4app管理的数据库无缝连接。 关键要点 了解如何使用golang构建crud应用程序并使用back4app管理数据。 深入了解如何设置可扩展的后端架构并将其与golang rest api集成。 学习使用back4app管理应用程序进行无忧的数据管理。 发现包括容器化在内的部署技术,以便快速启动。 先决条件 在开始之前,请确保您具备以下条件: 一个已设置新项目的back4app账户。 如需指导,请查看 back4app入门指南 https //www back4app com/docs/get started/new parse app 。 一个golang开发环境。 安装 go https //golang org/doc/install (推荐版本1 16或更高)。 对golang、rest api和http服务器的基本理解。 如有需要,请参考 golang文档 https //golang org/doc/ 。 步骤 1 – 项目设置 创建一个新的 back4app 项目 登录到您的 back4app 账户。 点击您的仪表板上的“新应用”按钮 。 输入项目名称: basic crud app golang 并按照说明创建您的项目。 创建新项目 项目设置完成后,您将在 back4app 仪表板上看到它列出,准备支持您的后端配置。 步骤 2 – 数据库模式设计 定义您的数据结构 对于一个基本的 crud 应用程序,您将创建几个集合。以下是您可能需要的集合和字段的示例: 1\ 项目集合 此集合存储有关每个项目的详细信息。 字段 数据类型 描述 id 对象id 自动生成的主键。 标题 字符串 项目的名称或标题。 描述 字符串 对该项目的简要描述。 创建于 日期 标记项目创建的时间戳。 更新于 日期 标记最后更新的时间戳。 2\ 用户收集 此集合保留用户数据和身份验证详细信息。 字段 数据类型 描述 id 对象id 自动生成的主键。 用户名 字符串 用户的唯一标识符。 电子邮件 字符串 用户的唯一电子邮件地址。 密码哈希 字符串 登录的加密密码。 创建于 日期 账户创建的时间戳。 更新于 日期 账户最后更新时间戳。 您可以通过 back4app 仪表板手动设置这些集合,方法是为每个集合创建一个新类并定义列。 创建新班级 您可以通过选择数据类型、命名字段、设置默认值以及指明是否为必填项来添加新字段。 创建列 利用 back4app ai 代理进行模式创建 可以通过您的仪表板访问的 back4app ai 代理,可以根据描述性提示自动创建您的数据库模式。此功能简化了项目设置并确保一致性。 如何使用 ai 代理: 启动 ai 代理: 打开您的 back4app 控制面板,并在项目设置中找到 ai 代理。 描述您的数据模型: 输入一个提示,详细说明您需要的集合和字段。 审核并应用: 代理生成集合定义。审核并确认更改。 示例提示 create the following collections in my back4app project 1\) collection items \ fields \ id objectid (auto generated primary key) \ title string \ description string \ created at date (auto generated) \ updated at date (auto updated) 2\) collection users \ fields \ id objectid (auto generated primary key) \ username string (unique) \ email string (unique) \ password hash string \ created at date (auto generated) \ updated at date (auto updated) 此方法节省时间,并有助于确保您的架构稳健且经过优化。 步骤 3 – 激活管理应用程序并执行 crud 操作 管理应用程序概述 back4app 管理应用程序是一个直观的无代码界面,允许您管理后端数据。它提供了一个拖放界面,用于创建、读取、更新和删除记录。 启用管理应用程序 访问“更多”菜单 在您的 back4app 控制面板上。 选择“管理应用程序” 然后点击 “启用管理应用程序。” 设置您的管理员凭据 通过创建初始管理员用户,这也配置角色和系统集合。 启用管理应用程序 激活后,登录管理应用程序以管理您的数据库。 管理员应用程序仪表板 使用管理员应用程序进行crud任务 在管理员应用程序中,您可以: 创建记录: 在集合中使用“添加记录”按钮(例如,项目)插入新数据。 读取/更新记录: 点击记录以查看或修改其详细信息。 删除记录: 使用删除选项删除过时的记录。 此界面通过直观的拖放设计简化了数据管理。 步骤4 – 将golang与back4app集成 现在您的后端已通过管理应用程序配置和管理,是时候使用 restful 端点将您的 golang 应用程序连接到 back4app 了。 设置您的 golang 项目 初始化您的 golang 项目目录: 创建一个名为 basic crud app golang 的文件夹并运行: go mod init basic crud app golang 安装必要的包: 对于本教程,标准库就足够了,但您可以根据需要选择添加外部库。 获取和显示项目的示例代码 以下是一个 golang 程序的示例,该程序从您的 back4app 项目集合中检索项目: package main import ( 	"encoding/json" 	"fmt" 	"io/ioutil" 	"log" 	"net/http" ) const ( 	appid = "your application id" 	restapikey = "your rest api key" ) type item struct { 	objectid string `json "objectid"` 	title string `json "title"` 	description string `json "description"` 	createdat string `json "createdat"` 	updatedat string `json "updatedat"` } type itemsresponse struct { 	results \[]item `json "results"` } func fetchitems() { 	url = "https //parseapi back4app com/classes/items" 	req, err = http newrequest("get", url, nil) 	if err != nil { 	 log fatalf("error creating request %v", err) 	} 	req header add("x parse application id", appid) 	req header add("x parse rest api key", restapikey) 	client = \&http client{} 	resp, err = client do(req) 	if err != nil { 	 log fatalf("error fetching items %v", err) 	} 	defer resp body close() 	body, err = ioutil readall(resp body) 	if err != nil { 	 log fatalf("error reading response %v", err) 	} 	var itemsresp itemsresponse 	if err = json unmarshal(body, \&itemsresp); err != nil { 	 log fatalf("error parsing json %v", err) 	} 	for , item = range itemsresp results { 	 fmt printf("title %s, description %s\n", item title, item description) 	} } func main() { 	fmt println("fetching items from back4app ") 	fetchitems() } 该程序向 back4app items 端点发送 get 请求,解码 json 响应,并打印出每个项目的标题和描述。 扩展 crud 功能 您可以类似地在 golang 中实现以下功能: 创建项目: 发送包含项目数据的 post 请求。 更新项目: 使用 put 或 post 请求修改现有记录。 删除项目: 发出 delete 请求以删除记录。 将这些功能集成到一个完整的 http 服务器中,使用 go 的 net/http 包来处理 crud 操作的路由。 第 5 步 – 保护您的后端 实施访问控制 通过在执行 crud 操作时应用访问控制列表 (acl),增强您的数据安全性。 例如,通过在 back4app 的仪表板上设置适当的 acl,并通过您的 golang api 强制执行,确保只有授权用户可以修改或删除数据。 配置类级权限 在 back4app 界面中调整类级权限 (clp),以限制对经过身份验证的用户或特定角色的数据访问。 步骤 6 – 用户认证 设置账户管理 back4app 使用 parse 的用户类进行认证。在您的 golang 应用程序中,通过向适当的 back4app 端点发送请求来处理用户注册和登录。这可以包括: 用户注册: 发送包含用户名、电子邮件和密码的 post 请求。 用户登录: 验证凭据并管理会话令牌。 在您的 golang 服务器中集成这些端点,以保护您的 crud 操作。 步骤 7 – 部署您的 golang 应用程序 7 1 准备您的生产构建 编译您的 golang 代码: 在您的项目目录中,运行: go build o crud app 验证二进制文件: 确保可执行文件 ( crud app ) 无错误运行。 7 2 组织您的项目文件 您的项目结构可能类似于: basic crud app golang/ ├── main go ├── handlers go ├── models go ├── go mod └── readme md 7 3 使用 docker 进行容器化 如果您更喜欢容器化,请包含一个 dockerfile ,例如 \# use an official golang image to build the app from golang 1 18 alpine as builder \# set the working directory workdir /app \# copy go mod and go sum files copy go mod go sum / \# download dependencies run go mod download \# copy the source code copy \# build the application run go build o crud app \# use a minimal image to run the app from alpine\ latest workdir /root/ copy from=builder /app/crud app expose 8080 cmd \[" /crud app"] 7 4 部署您的应用程序 在您选择的平台上部署 无论您选择 vps、云服务提供商,还是 back4app 的部署服务,请上传您的二进制文件或 docker 容器。 监控部署 检查日志并验证您的 api 端点是否可访问。 测试应用程序 访问您服务器的 url,以确认所有 crud 端点按预期工作。 第8步 – 结论和下一步 干得好!您已经成功使用golang和back4app构建了一个基本的crud应用程序。您设置了一个名为 basic crud app golang 的项目,设计了items和users的集合,并通过rest api将您的golang后端连接到back4app。 下一步: 增强您的api: 添加更多端点以实现详细的项目视图、搜索功能或实时更新。 实施额外的安全性: 探索高级身份验证方法并进一步保护您的端点。 探索更多资源: 查阅 back4app文档 https //www back4app com/docs 和 golang文档 https //golang org/doc/ 以获取更深入的见解。 通过遵循本教程,您现在拥有构建强大、可扩展的crud应用程序的基础,golang与back4app无缝集成。祝您编码愉快!