在分布式系统架构中,后端服务较多使用 gRPC 进行通信,当需要暴露服务给前端时往往需要增加一层 Http Server 将 gRPC-Web 转换为 RESTful 接口,这会增加额外的工作量,而 gRPC-Web 项目可以帮助我们避免这些工作,实现在前端直接调用 gRPC 服务。对于已经存在大量 RESTful 调用的系统中,立即全部迁移至 gRPC-Web 是不现实的,因此我们需要一种平滑迁移的方案能够实现:对于同一个资源的请求旧的前端调用仍然使用 RESTful,同时新的前端调用可以使用 gRPC-Web,而对于新增资源则直接使用 gRPC-Web 调用,同时也兼容 RESTful,为了实现这种兼容性不能增加额外的服务端,即 gRPC-Web 和 RESTful 的服务监听在同一地址的同一端口。