这是我参与「第五届青训营 」伴学笔记创作活动的第6天。
Hertz框架的安装与使用
Hertz[həːts] 是一个 Golang 微服务 HTTP 框架,在设计之初参考了其他开源框架 fasthttp、gin、echo 的优势, 并结合字节跳动内部的需求,使其具有高易用性、高性能、高扩展性等特点,目前在字节跳动内部已广泛使用。 如今越来越多的微服务选择使用 Golang,如果对微服务性能有要求,又希望框架能够充分满足内部的可定制化需求,Hertz 会是一个不错的选择。
安装命令行工具 hz
- 确保
GOPATH环境变量已经被正确地定义(例如export GOPATH=~/go)并且将$GOPATH/bin添加到PATH环境变量之中(例如export PATH=$GOPATH/bin:$PATH);请勿将GOPATH设置为当前用户没有读写权限的目录 - 安装 hz:
go install github.com/cloudwego/hertz/cmd/hz@latest
使用Hertz(服务端)
以Windows环境举例
- 新建项目并创建main.go文件
- 在main.go中添加以下代码
package main
import (
"context"
"github.com/cloudwego/hertz/pkg/app"
"github.com/cloudwego/hertz/pkg/app/server"
"github.com/cloudwego/hertz/pkg/common/utils"
"github.com/cloudwego/hertz/pkg/protocol/consts"
)
func main() {
h := server.Default()
h.GET("/ping", func(c context.Context, ctx *app.RequestContext) {
ctx.JSON(consts.StatusOK, utils.H{"message": "pong"})
})
h.Spin()
}
- 生成go.mod文件(如果原不存在)
- 整理 & 拉取依赖
go mod tidy
- 运行项目
- 使用cmd,执行以下命令对接口进行测试
curl http://127.0.0.1:8888/ping
如果项目成功运行,你将会看到以下信息:
{"message":"pong"}
到现在,我们已经成功启动了 Hertz Server,并完成了一次调用。
使用Hertz(客户端)
Hertz 提供了 HTTP Client 用于帮助用户发送 HTTP 请求:
c, err := client.NewClient()
if err != nil {
return
}
// send http get request
status, body, _ := c.Get(context.Background(), nil, "https://www.example.com")
fmt.Printf("status=%v body=%v\n", status, string(body))
// send http post request
var postArgs protocol.Args
postArgs.Set("arg","a") // Set post args
status, body, _ = c.Post(context.Background(), nil, "https://www.example.com", &postArgs)
fmt.Printf("status=%v body=%v\n", status, string(body))
引用
分发
This work is licensed under CC BY-SA 4.0