GO语言(十三):使用 Go 和 Gin 开发 RESTful API(下)当客户端在 发出POST请求时/albums,您希望将请求正文中描述的专辑添加到现有专辑数据中 。
为此,您将编写以下内容:
1、编写代码
a.添加代码以将专辑数据添加到专辑列表 。
在此代码中:
1)用于Context.BindJSON 将请求正文绑定到newAlbum 。
2) album将从 JSON 初始化的结构附加到albums 切片 。
3)向响应添加201状态代码,以及表示您添加的专辑的 JSON 。
b.更改您的main函数,使其包含该router.POST函数,如下所示 。
在此代码中:
1)将路径中的POST方法与 /albumspostAlbums函数相关联 。
使用 Gin , 您可以将处理程序与 HTTP 方法和路径组合相关联 。这样,您可以根据客户端使用的方法将发送到单个路径的请求单独路由 。
a.如果服务器从上一节开始仍在运行 , 请停止它 。
b.从包含 main.go 的目录中的命令行,运行代码 。
c.从不同的命令行窗口,用于curl向正在运行的 Web 服务发出请求 。
该命令应显示添加专辑的标题和 JSON 。
d.与上一节一样,使用curl检索完整的专辑列表,您可以使用它来确认添加了新专辑 。
该命令应显示专辑列表 。
当客户端向 发出请求时GET /albums/[id],您希望返回 ID 与id路径参数匹配的专辑 。
为此,您将:
a.在您在上一节中添加的函数下方postAlbums,粘贴以下代码以检索特定专辑 。
此getAlbumByID函数将提取请求路径中的 ID,然后找到匹配的专辑 。
在此代码中:
(1)Context.Param用于从 URL 中检索id路径参数 。当您将此处理程序映射到路径时,您将在路径中包含参数的占位符 。
(2)循环album切片中的结构,寻找其ID 字段值与id参数值匹配的结构 。如果找到,则将该album结构序列化为 JSON,并将其作为带有200 OK HTTP 代码的响应返回 。
如上所述,实际使用中的服务可能会使用数据库查询来执行此查找 。
(3)如果找不到专辑 , 则返回 HTTP 404错误 。
b.最后,更改您的main,使其包含对router.GET的新调用 , 路径现在为/albums/:id,如以下示例所示 。
在此代码中:
(1)将/albums/:id路径与getAlbumByID功能相关联 。在 Gin 中 , 路径中项目前面的冒号表示该项目是路径参数 。
a.如果服务器从上一节开始仍在运行,请停止它 。
b.在包含 main.go 的目录中的命令行中 , 运行代码以启动服务器 。
c.从不同的命令行窗口 , 用于curl向正在运行的 Web 服务发出请求 。
该命令应显示您使用其 ID 的专辑的 JSON 。如果找不到专辑,您将收到带有错误消息的 JSON 。
恭喜!您刚刚使用 Go 和 Gin 编写了一个简单的 RESTful Web 服务 。
本节包含您使用本教程构建的应用程序的代码 。
【10】Go语言运算符及运算符的优先级 运算符用于在程序运行时执行数学或逻辑运算 。
1.算术运算符
Go 语言的算术运算符如图,假设A值为10 , B值为20 。
2.关系运算符
Go 语言的关系运算符如图 , 假设A值为10,B值为20 。
3.逻辑运算符
Go 语言的逻辑运算符如图 。假定A值为True , B值为False 。
4.位运算符
位运算符对整数在内存中的二进制位进行操作 。
位运算符比一般的算术运算符速度要快,而且可以实现一些算术运算符不能实现的功能 。如果要开发高效率程序,位运算符是必不可少的 。
Go 语言的位运算符如图 。假定 A = 60,B = 13 , 其二进制数转换如下 。
推荐阅读
- 水平滑动jquery,水平滑动摩擦力怎么计算
- 项目css样式,css项目符号怎么加颜色
- 无网络用什么电视,无网络用什么电视机好
- pdf怎么设置权限密码设置在哪里设置密码,如何设置pdf权限
- 数据库差异化脚本PHP 数据库的脚本
- thinkphp5count查询,thinkphp join查询
- 方正主板硬盘怎么设置,方正主板bios设置
- vb.net铅笔程序,vb软件编程
- linux取回日志的命令 linux 日志记录