编程初学者的Go语言学习之旅 | 青训营笔记

68 阅读1分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第6天。

Hertz框架的安装与使用

Hertz[həːts] 是一个 Golang 微服务 HTTP 框架,在设计之初参考了其他开源框架 fasthttpginecho 的优势, 并结合字节跳动内部的需求,使其具有高易用性、高性能、高扩展性等特点,目前在字节跳动内部已广泛使用。 如今越来越多的微服务选择使用 Golang,如果对微服务性能有要求,又希望框架能够充分满足内部的可定制化需求,Hertz 会是一个不错的选择。

安装命令行工具 hz

  1. 确保 GOPATH 环境变量已经被正确地定义(例如 export GOPATH=~/go)并且将$GOPATH/bin添加到 PATH 环境变量之中(例如 export PATH=$GOPATH/bin:$PATH);请勿将 GOPATH 设置为当前用户没有读写权限的目录
  2. 安装 hz:go install github.com/cloudwego/hertz/cmd/hz@latest

使用Hertz(服务端)

以Windows环境举例

  1. 新建项目并创建main.go文件
  2. 在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()
}
  1. 生成go.mod文件(如果原不存在)
  2. 整理 & 拉取依赖
go mod tidy
  1. 运行项目
  2. 使用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))

引用

Hertz官方文档

分发

This work is licensed under CC BY-SA 4.0