huizhou92

huizhou92

tech

【译】grpc:好的部分

本文深入解析了gRPC在现代Web开发中的优势,从使用Protocol Buffers实现的数据传输优化(可减少高达50%流量)到严谨的API契约带来的代码自动生成、类型安全与文档同步,再到流式通信和跨语言支持的实际应用,详述了gRPC如何推动HTTP/2/HTTP/3革新。文章还探讨了gRPC与REST兼容的转码方案(如gRPC-Gateway、gRPC-Web、ConnectRPC、Twirp)及丰富的工具生态(如Buf CLI、第三方插件),为追求高性能、低延迟与微服务架构优化的开发者提供了实用参考和未来趋势预判。

By huizhou92

tech

Golang http 支持 NegotiateFormat

Go 标准库提案:更优雅的 HTTP 内容协商 背景 在 Web 开发中,HTTP 内容协商(Content Negotiation)是一项重要的机制,它允许客户端和服务器就响应内容的最佳格式达成一致。例如,手机端可能希望接收 JSON 格式的数据,Web端可能想要XML格式的数据,服务端可以在一个接口中提供多种数据格式。客户端通过 Accept 请求头表达自己的偏好,服务端根据这些偏好选择最合适的格式返回。 具体内容可以参考RFC9110 比如在下面的例子中,使用Gin框架自己实现的内容协商 。在一个API接口中返回了JSON和XML两种格式。 package main import ( "net/http" "github.com/gin-gonic/gin" ) type User struct { Name string `json:"

By huizhou92