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 服务 。
本节包含您使用本教程构建的应用程序的代码 。
golang 怎么调用windowsapiwindow下调用API列出所有运行的进程
[Google Go]代码
【go语言api设置 go语言cap】package main
import (
"fmt"
"syscall"
"unsafe"
"strconv"
)
type ulong int32
type ulong_ptr uintptr
type PROCESSENTRY32 struct {
dwSize ulong
cntUsage ulong
th32ProcessID ulong
th32DefaultHeapID ulong_ptr
th32ModuleID ulong
cntThreads ulong
th32ParentProcessID ulong
pcPriClassBase ulong
dwFlags ulong
szExeFile [260]byte
}
func main() {
kernel32 := syscall.NewLazyDLL("kernel32.dll");
CreateToolhelp32Snapshot := kernel32.NewProc("CreateToolhelp32Snapshot");
pHandle,_,_ := CreateToolhelp32Snapshot.Call(uintptr(0x2),uintptr(0x0));
if int(pHandle)==-1 {
return;
}
Process32Next := kernel32.NewProc("Process32Next");
for {
var proc PROCESSENTRY32;
proc.dwSize = ulong(unsafe.Sizeof(proc));
if rt,_,_ := Process32Next.Call(uintptr(pHandle),uintptr(unsafe.Pointer(proc)));int(rt)==1 {
fmt.Println("ProcessName : " string(proc.szExeFile[0:]));
fmt.Println("ProcessID : " strconv.Itoa(int(proc.th32ProcessID)));
}else{
break;
}
}
CloseHandle := kernel32.NewProc("CloseHandle");
_,_,_ = CloseHandle.Call(pHandle);
}
golang调用openaichatapiOpenAI ChatGPT目前除了提供免费试用网页版给大家使用外go语言api设置,也提供收费的API以便我们进行二次开发 。另外go语言api设置,这几天白天在使用OpenAI ChatGPT网页版时go语言api设置,很多次出现网站拥堵情况 。因此go语言api设置,后续有必要调用API来做些事情 。OpenAI GPT-3 API 包括以下好处:
高质量的文本生成: GPT-3 是一种先进的语言模型,能够生成高质量和连贯的文本 。
语言理解: GPT-3 对自然语言有深刻的理解,这使其非常适合诸如语言翻译、文本摘要和情感分析等任务 。
各种用例: API 可用于广泛的应用,如编写代码、撰写电子邮件和消息、创建聊天机器人等 。
易于使用:API易于使用,可通过简单的HTTPS请求访问,且有许多不同编程语言的开源库可以更方便地使用 。
成本效益:GPT-3 API是一种基于云的服务,无需昂贵的硬件,也无需训练自己的模型 。
节省时间:GPT-3 API 可以快速完成许多自然语言任务,减少人工输入 , 节省时间和资源 。
大数据可用性: GPT-3是基于大型数据集训练的,意味着它可以访问广泛的知识 , 帮助生成更准确和更有信息量的输出
关于go语言api设置和go语言cap的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息 , 记得收藏关注本站 。
推荐阅读
- 直播主机游戏都用什么软件,主机游戏直播需要什么设备
- v20可以升级到鸿蒙,v20升级鸿蒙操作步骤
- 快手直播什么图片不能发,快手直播什么图片不能发给别人
- java代码查找 java搜索代码
- 花为什么有香味视频,花为什么会发出香味
- 儿时酒店经营游戏,儿时酒店经营游戏有哪些
- sqlserver多线程,sqlserver多线程死锁
- linux敲命令的作用的简单介绍
- css3曲线长度,html5曲线图