主要观点:介绍了 FauxRPC 这一工具,它能通过轻松生成 gRPC、gRPC-Web、Connect 和 REST 服务的假实现来加速开发和测试,具有多种优势如更快开发测试、隔离控制、多协议支持等。
关键信息:
- 基于 Protobuf 定义生成假服务,可配置假数据模拟各种场景。
- 支持多种平台的预构建二进制文件,可通过安装源方式获取。
- 能利用服务器反射启动服务,从 Buf Schema Registry 中使用图像,可定义多个
--schema
选项。 - 多协议支持基于 ConnectRPC,可结合 gRPC 和 REST,通过
google.api.http
注解实现。 - 假数据生成使用
fakeit
库,若有protovalidate
约束会生成更符合实际的假数据。
重要细节: - 安装 FauxRPC 可通过
go install github.com/sudorandom/fauxrpc/cmd/fauxrpc@latest
命令安装源,或在发布页面获取预构建二进制文件。 - 示例中通过
buf build
命令生成描述文件,如buf build./example.proto -o./example.binpb
,然后使用fauxrpc run --schema=./example.binpb
启动服务,可通过buf curl
等工具测试服务。 - 对于有
google.api.http
注解的服务,如http.service
,可通过buf build
生成描述文件后启动服务,如buf build./httpservice.proto -o./httpservice.binpb
,fauxrpc run --schema=httpservice.binpb
,并可使用curl
测试。 - 对于
buf.registry.owner.v1.UserService
,通过buf build buf.build/bufbuild/registry -o bufbuild.registry.binpb
生成描述文件,fauxrpc run --schema=./bufbuild.registry.binpb
启动服务,buf curl
测试。 - 作者计划为 FauxRPC 添加为每个 RPC 方法配置存根的功能,以更好地控制模拟服务。
- FauxRPC 的代码在 GitHub 的sudorandom/fauxrpc仓库,可查看和提供反馈建议,别忘了在 GitHub 上给仓库点赞。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。