当前位置: 首页 > 工具软件 > Hertz > 使用案例 >

HTTP 框架 Hertz 初体验 (虚拟机环境)

澹台举
2023-12-01

版本预配置

  1. VMware 配置 CentOS 7 64位,参考 链接
    PS : swap分区设置 3G 左右
  2. Golang 下载 go1.17.linux-amd64.tar.gz
    PS : 不要下载 go 1.20 的新版本,因为有些东西暂不支持会报错1

安装 Golang

  1. 将 go 1.17 上传到 虚拟机的 /home/music 目录下
  2. 删除任何以前的 Go 安装(如果存在),然后将 go 1.17 解压缩到 /home/music 中
 rm -rf /home/music/go && tar -C /home/music -xzf go1.17.linux-amd64.tar.gz

验证是否安装成功

 go version

环境配置

  1. 将 /home/music/go/bin 添加到 PATH 环境变量中

进入 profile 文件

vim /etc/profile

在 profile 文件开头添加

export GOPATH=/home/music/go
export PATH=$GOPATH/bin:$PATH

重新加载系统配置文件

source /etc/profile

安装命令行工具 hz

  1. 安装 hz 工具 (hz 是 Hertz 框架提供的一个用于生成代码的命令行工具)
go install github.com/cloudwego/hertz/cmd/hz@latest

验证是否安装成功

hz -v

生成/编写示例代码

  1. 在 /home/music/go 目录外放置代码,例如 /home/music/project

  2. 在 /home/music/project 目录下创建 hertz_demo 文件夹

mkdir hertz_demo	
  1. 在 hertz_demo 文件夹下 用 hz 生成代码
hz new -mod hertz_demo

PS : 不加 -mod hertz_demo 会报错2

  1. 整理 & 拉取依赖
go mod tidy

运行示例代码

  1. 直接编译并启动 Server
go build -o hertz_demo && ./hertz_demo

如果成功启动,你将看到以下信息

2022/05/17 21:47:09.626332 engine.go:567: [Debug] HERTZ: Method=GET    absolutePath=/ping   --> handlerName=main.main.func1 (num=2 handlers)
2022/05/17 21:47:09.629874 transport.go:84: [Info] HERTZ: HTTP server listening on address=[::]:8888

此时不用操作

  1. 对接口进行测试

打开另一个窗口

curl http://127.0.0.1:8888/ping

如果不出意外,我们可以看到类似如下输出

$ {"message":"pong"}

到现在,我们已经成功启动了 Hertz Server,并完成了一次调用。

引用

  1. Golang 官网关于 Golang 在 Linux 下的安装
  2. cloudwego 的 Hertz 文档 快速上手

附加资料

Hertz 框架地址

注脚


  1. 报错 # github.com/bytedance/sonic/internal/loader
    …/…/go/pkg/mod/github.com/bytedance/sonic@v1.5.0/internal/loader/funcdata.go:27:22: undefined: _ModuleData
    …/…/go/pkg/mod/github.com/bytedance/sonic@v1.5.0/internal/loader/funcdata.go:30:27: undefined: _ModuleData
    …/…/go/pkg/mod/github.com/bytedance/sonic@v1.5.0/internal/loader/funcdata.go:41:6: undefined: _Func
    …/…/go/pkg/mod/github.com/bytedance/sonic@v1.5.0/internal/loader/funcdata.go:42:12: undefined: _ModuleData
    …/…/go/pkg/mod/github.com/bytedance/sonic@v1.5.0/internal/loader/funcdata.go:53:16: undefined: _ModuleData
    …/…/go/pkg/mod/github.com/bytedance/sonic@v1.5.0/internal/loader/funcdata.go:79:26: undefined: _ModuleData
    …/…/go/pkg/mod/github.com/bytedance/sonic@v1.5.0/internal/loader/funcdata_invalid.go:23:6: panic(“Unsupported Go version. Supported versions are: 1.15, 1.16, 1.17, 1.18, 1.19”) (no value) used as value
    …/…/go/pkg/mod/github.com/bytedance/sonic@v1.5.0/internal/loader/loader.go:47:50: too many arguments in call to registerFunction
    have (string, uintptr, uintptr, int, int, uintptr, uintptr, uintptr)
    want (string, uintptr, int, int, uintptr) ↩︎

  2. 报错 output directory /home/cjz/workplace/hertz_demo is not under GOPATH/src.
    Please specify a module name with the ‘-module’ flag ↩︎

 类似资料: