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 服务器,还需要:

添加评论
点赞收藏
点踩分享查看原文
评论
?
参与讨论