如何在 GraphQL 服务器上启用 gzip?

Jim*_*mmy 5 encoding graphql

根据这篇文章,鼓励任何生产 GraphQL 服务启用 GZIP 并鼓励其客户端发送标头:Accept-Encoding:gzip

我在 Postman 中对此进行了测试,启用或禁用“Accept-Encoding”,我没有看到响应的“content-length”有任何差异。

所以我的问题是,如何在 graphQL 服务器上启用 GZIP 编码?

在此输入图像描述

Sam*_*Toh -2

问:如何在 graphQL 服务器上启用 GZIP 编码?

答:简短的回答,你不能

为什么?因为 GraphQL 只是一个用于解析图形查询并调用您提供的适当函数来构建图形响应的库。

这并不是要压缩您的HTTP响应并确保响应Content-Type=Gzip中包含标头。

换句话说,该文档试图说明的是,响应GraphQL看起来非常相似JSON,因此在压缩时它们可以很好地工作。主要是因为原始graph响应的大小可能相当臃肿,并且通过网络传输它们效率低下且缓慢。

万一您的 HTTP 服务器graphql是在 中实现的NodeJS,您可以使用zlib来进行压缩。请参阅文档

如果您是使用 NodeJs 框架的大多数人,express那么它会更容易,因为它已经有一个压缩插件。看这里

  • 我认为这个回应对于OP所要求的内容来说措辞非常令人困惑。据我所知,您正在划分实际接收请求和提供响应的 HTTP 服务器与在代码中委托请求的 GraphQL 框架。但是,从 OP 可以清楚地看出,有一个本地运行的 HTTP 服务器,它使用 GraphQL 框架。仅仅因为OP中的措辞稍有偏差并不意味着你应该以“你不能”开头。对于 OP 和未来的读者来说,引导压缩库会更有帮助,然后解释 GQL 和 HTTP 之间的差异 (20认同)