这是我参与「第五届青训营 」笔记创作活动的第9天
Hertz官方文档
Hertz 基本使用
创建侦听服务器
h := server.Default(server.WithHostPorts("ip:port"))创建侦听port端口的服务器
创建路由
提供了get post delete put any等方法创建路由
h.GET()以此类推
路由分组
提供了路由分组的功能
h.Group("/v1"){
h.GET("/login",loginEndpoint)
}
第二个参数loginEndpoint是一个函数
路由优先级
静态路由 > 命名路由(参数路由) > 通配路由
参数路由
使用RequestContext.Param()可以获得参数的信息
通配路由
参数绑定
提供了Bind Validate BindAndValidate三种方法用于参数的绑定和校验
Validate要配合go tag使用,在结构体的属性后面增加tag vd:""来定义检验标准
还有一些常用用法如下:
- 自定义bind 和validate 的error
- 自定义类型解析
- 自定义验证函数
中间件
分为服务端中间件和客户端中间件
终止中间件调用链的执行c.Abort c.AbortWithMsg c.AbortWithStats
这是一个服务端中间件:
Hertz Client
client.NewClient()创建一个新的客户端,用来帮助用户发送http请求
示例如下:
Hertz 代码生成工具
基于Thrift IDL编写IDL,然后使用hz代码生成命令生成代码
详细hz命令可以参考文档中给出的注解 hz 命令行工具使用 | CloudWeGo
Hertz生态
常用扩展如下: