介绍 FauxRPC

主要观点:介绍了 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.binpbfauxrpc 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 上给仓库点赞。
阅读 8
0 条评论