hz client 代码生成
hz client 代码生成。
介绍
基于 IDL 生成类似 RPC 形式的 http 请求一键调用,屏蔽掉创建和初始化 hertz client 的繁琐操作,并且实现和 hz 生成的 server 代码直接互通。
该命令需指定 idl,否则不会生成任何内容。
hz client 命令梳理可以参考 hz client。
hz client 生成的代码结构可以参考 hz client。
生成代码示例可以参考 code 。
示例
本示例基于 thrift 给出,protoc 与之类似。
定义 IDL
IDL 的定义和语义与目前的定义完全相同,所以基本不用修改原先的 IDL 即可生成 client 代码。
但是为针对 client 的场景,增加了一种注解, api.base_domain:指定默认访问的请求 domain。
注意: 当使用 api.any
注解时,client 会自动生成 post
方法的 client 代码用于替换 any
。
生成 client 代码
高级设置
client 配置
以 thrift IDL 生成的代码为例
请求级别的配置
以 thrift IDL 生成的代码为例
设置 client 中间件
以 thrift IDL 生成的代码为例
设置全局 header
以 thrift IDL 生成的代码为例
有一些通用的 header 可能每次请求都需要携带,或者是一些不能定义到 IDL 中的 header,这时我们就可以通过 “WithHeader” 注入这些 header,使得每次发送请求都会携带这些 header。
配置 TLS
以 thrift IDL 生成的代码为例
Hertz client 的 TLS 走的是标准网络库,因此在使用生成的一键调用时需要配置为标准网络库。
自定义 hertz client
以 thrift IDL 生成的代码为例
最后修改
April 2, 2025
: doc(Eino): fix a typo (#1294) (048e436)