没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
使用 Golang 和 Gin 开发 RESTful API
本文江介绍使用 Golang 和 Gin Web 框架 (Gin)编写 RESTful Web 服务 API 的基础知识.
如果您对 Golang 及其工具有基本的了解,您将从本文中获得最大收益。
Gin 简化了许多与构建 Web 应用程序(包括 Web 服务)相关的编码任务。在本文中,您将
使用 Gin 路由请求、检索请求详细信息以及组织 JSON 以进行响应。
在本文中,您将构建一个具有两个端点的 RESTful API 服务器。您的示例项目将是有关复古爵
士乐唱片的数据存储库.
本文包括以下部分:
1. 设计 API 端点.
2. 为您的代码创建一个文件夹.
3. 创建数据.
4. 编写一个处理程序来返回所有项目(item).
5. 编写一个处理程序来添加一个新项目.
6. 编写一个处理程序来返回一个特定的项目.
注意: 有关其他文,请参阅 文.
要尝试将此作为您在 Google Cloud Shell 中完成的交互式文,请点击下面的按钮.
先决条件
• Go 1.16 或更高版本的安装. 有关安装说明,请参阅 安装 Go.
• 一种编辑代码的工具. 您拥有的任何文本编辑器都可以正常工作.
• 命令终端. Go 适用于 Linux 和 Mac 上的任何终端,以及 Windows 中的 PowerShell
或 cmd.
• curl 工具. 在 Linux 和 Mac 上,这应该已经安装了. 在 Windows 上,它包含在
Windows 10 Insider build 17063 及更高版本中。对于较早的 Windows 版本,您可能需
要安装它。有关更多信息,请参阅 Tar 和 Curl 来到 Windows.
设计 API 端点
您将构建一个 API,该 API 提供对销售黑胶唱片老式唱片的商店的访问。因此,您需要提供
端点,客户端可以通过这些端点为用户获取和添加专辑.
在开发 API 时,您通常从设计端点开始。如果端点易于理解,您的 API 用户将获得更多成功.
以下是您将在本文中创建的端点.
/albums
• GET – 获取所有专辑的列表,以 JSON 形式返回.
• POST – 从以 JSON 形式发送的请求数据中添加新专辑.
/albums/:id
• GET – 通过 ID 获取专辑,以 JSON 形式返回专辑数据.
接下来,您将为您的代码创建一个文件夹.
为您的代码创建一个文件夹
首先,为您将编写的代码创建一个项目(project).
1. 打开命令提示符并切换到您的 home 目录.
在 Linux 或 Mac 上:
$ cd
在 Windows 上:
C:\> cd %HOMEPATH%
2. 使用命令提示符为您的代码创建一个名为 web-service-gin 的目录.
3. $ mkdir web-service-gin
4. $ cd web-service-gin
5. 创建一个模块,您可以在其中管理依赖项.
运行 go mod init 命令,为其指定代码所在模块的路径.
$ go mod init example/web-service-gin
go: creating new go.mod: module example/web-service-gin
此命令会创建一个 go.mod 文件,您添加的依赖项将在其中列出以进行跟踪。有关使用模块路
径命名模块的更多信息,请参阅 管理依赖项.
接下来,您将设计用于处理数据的数据结构.
创建数据
为了使本文简单,您将数据存储在内存中。更典型的 API 将与数据库交互.
请注意,将数据存储在内存中意味着每次停止服务器时专辑集都会丢失,然后在启动时重新创
建.
写代码
1. 使用您的文本编辑器,在 web-service 目录中创建一个名为 main.go 的文件。您将在
此文件中编写 Go 代码.
2. 在 main.go 文件的顶部,粘贴以下包声明.
3. package main
独立程序(而不是库)始终位于包 main 中.
4. 在包声明下方,粘贴以下 album 结构声明 。您将使用它在内存中存储专辑数据.
结构标记,例如 json:"artist"指定当结构的内容序列化为 JSON 时字段的名称应该是什么。如
果没有它们,JSON 将使用结构体的大写字段名称——这种样式在 JSON 中并不常见.
// album 表示有关专辑的数据.
type album struct {
ID string `json:"id"`
Title string `json:"title"`
Artist string `json:"artist"`
Price float64 `json:"price"`
}
5. 在您刚刚添加的结构声明下方,粘贴以下 album 结构片段, 其中包含您将用于启动的
数据.
6. // 专辑切片以填充专辑数据记录.
7. var albums = []album{
8. {ID: "1", Title: "Blue Train", Artist: "John Coltrane", Price: 56.99},
9. {ID: "2", Title: "Jeru", Artist: "Gerry Mulligan", Price: 17.99},
剩余14页未读,继续阅读
资源评论
icysmile131
- 粉丝: 4632
- 资源: 743
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功