Connect Rpc快速上手

入门 ConnectRPC(原 Connect)是一组用于构建浏览器和 gRPC 兼容 HTTP API 的库:编写简短的 Protocol Buffer schema 并实现业务逻辑,Connect 会生成代码来处理序列化、路由、压缩和内容协商,并为所有受支持的语言生成惯用、类型安全的客户端。在 Go 中,Connect 只有一个包(connect-go),短到可以一个下午读完。 多协议支持 Connect 服务器和客户端支持三种协议: gRPC:完全支持,包括流式、trailers 和错误详情。任何语言的 gRPC 客户端都可以调用 Connect 服务器,Connect 客户端也可以调用任何 gRPC 服务器(官方用扩展版的 Google 互操作性测试验证兼容性) gRPC-Web:直接支持,无需依赖 Envoy 之类的转换代理 Connect 协议:基于 HTTP 的简单协议,可运行在 HTTP/1.1、HTTP/2 和 HTTP/3 上,默认同时支持 JSON 和二进制 Protobuf 编码 服务器默认接受全部三种协议的入口;客户端默认使用 Connect 协议,通过配置即可切换到 gRPC 或 gRPC-Web,无需修改其他代码。错误、header、trailer 和流式 API 都是协议无关的。 可以用 cURL 直接体验官方 demo 服务(Eliza 聊天机器人): curl \ --header "Content-Type: application/json" \ --data '{"sentence": "I feel happy."}' \ https://demo.connectrpc.com/connectrpc.eliza.v1.ElizaService/Say 压缩和序列化 Connect 支持多种压缩和序列化选项,协议层支持 identity、gzip、br、zstd 四种 Content-Encoding。默认情况下,Connect 处理程序使用标准库的 compress/gzip 提供 gzip 压缩。Connect 客户端默认发送未压缩的请求并请求 gzip 压缩的响应。如果您知道服务器支持 gzip,则还可以在客户端构建期间使用 WithSendGzip 选项来压缩请求。 ...

2024-11-06 · 4 分钟 · czyt

在go中使用Connect rpc

准备 参考 https://zenn.dev/7oh/articles/3b944f9b744932

2024-08-28 · 1 分钟 · czyt