vanguard-go简明教程 by Claude
用一个 Go 服务器同时支持 REST、gRPC、gRPC-Web 和 Connect 客户端。本文使用claude code编写
什么是 vanguard-go?
vanguard-go 是 ConnectRPC 团队开发的一个 Go 中间件库,核心功能是协议转码(Transcoding):它能让你只写一套 RPC 服务实现,就同时支持多种客户端协议:
| 客户端协议 | 是否支持 |
|---|---|
| Connect Protocol | ✅ |
| gRPC | ✅ |
| gRPC-Web | ✅ |
| REST + JSON(HTTP 转码) | ✅ |
与 gRPC-Gateway 不同,vanguard 直接作为 net/http 中间件运行,无需额外的代理进程,性能更高,集成更简单。
核心概念
理解这三个概念就掌握了 vanguard 的精髓:
Service(服务):对一个 Protobuf RPC 服务的配置包装,包含服务的 schema(用于协议转换)和实际的 HTTP 处理器。
Transcoder(转码器):将一组 Service 包装成 http.Handler,自动处理所有协议转换逻辑,也充当路由器。
HTTP Transcoding Annotations(HTTP 转码注解):在 .proto 文件里用 google.api.http 注解将 RPC 方法映射到 RESTful 路径,这是支持 REST 客户端的关键。
快速开始
1. 安装依赖
go get connectrpc.com/vanguard
go get connectrpc.com/connect
如果你使用 gRPC-Go 服务器,还需要:
评论
?
参与讨论