Hertz 学习笔记(1)

138 阅读1分钟

Hertz 是字节内部广泛使用的一个 HTTP 框架,最近在学 Go,这个项目是个非常好的学习项目。

项目地址

项目文档

我也是新手入门,先从快速开始看起吧。

安装命令行工具 hz

确保自己的 Go 环境是配好的,有 $GOPATH 这个环境变量。(我安装语言的时候没有设置,好像是在安装完 VS Code 的 Go 扩展之后要一些依赖,那些依赖直接拿 ~/go 当这个环境变量的值了),然后:

$ go install github.com/cloudwego/hertz/cmd/hz@latest

确定代码放置位置

我不放到 $GOPATH 里面,这一步不需要设置什么。

生成/编写示例代码

  1. 在当前目录下创建 hertz_demo 文件夹,进入该目录中

    $ mkdir hertz_demo
    $ cd hertz_demo/
    
  2. 生成代码。我当前不在 GOPATH 里,需要添加 -mod flag 指定一个自定义的模块名称。详细参考这里

    $ hz new -mod hertz_demo
    
  3. 整理 & 拉取依赖

    $ go mod tidy
    
  4. 编译项目

    $ go build
    
  5. 运行测试

    第一个终端里运行这个项目(先确定编译结果文件的名字,我这里和文件夹名字一样,也是 hertz_demo

    $ ./hertz_demo
    

    代码正常启动会看到

    2023/06/05 21:34:37.076215 engine.go:617: [Debug] HERTZ: Method=GET    absolutePath=/ping                     --> handle
    rName=hertz_demo/biz/handler.Ping (num=2 handlers)
    2023/06/05 21:34:37.076896 engine.go:389: [Info] HERTZ: Using network library=netpoll
    2023/06/05 21:34:37.077095 transport.go:115: [Info] HERTZ: HTTP server listening on address=[::]:8888
    

    第二个终端里测试这个代码通了没有

    $ curl 127.0.0.1:8888/ping
    

    结果是给我返回一个 {"message":"pong"},这样就算成功了。