压缩 GraphQL 查询?

Posted

技术标签:

【中文标题】压缩 GraphQL 查询?【英文标题】:Compress GraphQL Query? 【发布时间】:2018-03-14 19:29:30 【问题描述】:

我正在寻找一种标准方法来压缩 GraphQL 查询/响应以通过 MQTT 发送它。

我在想一些可以:

删除多余的空格 删除多余的新行(\n\r); 压缩消息(zlib?)

我查看了用于 Python 的 Graphene 和其他 GraphQL 模块,但我还没有找到我想要的东西。

是否有我遗漏的术语或者这是我不应该做的事情?

【问题讨论】:

谢天谢地,这可能与通过 AJAX 压缩任何 JSON 没有什么不同。 【参考方案1】:

我能想到的用 Python 压缩 GraphQL 查询的最简单方法是:

import shlex

query_with_strings = """
        query someQuery    
                Field(
                 search: "string with   spaces"
                ) 
                        foo
                
        
"""


def compress_graphql(q):
    """Compress a GraphQL query by removing unnecessary whitespace.

    >>> compress_graphql(query_with_strings)
    u'query someQuery  Field( search: "string with   spaces" )  foo  '
    """
    return u' '.join(shlex.split(q, posix=False))

这假定所有查询都已经是 unicode (Python 2) 或 str (Python 3) 对象。

运行 doctest 将通过。

【讨论】:

以上是关于压缩 GraphQL 查询?的主要内容,如果未能解决你的问题,请参考以下文章

GraphQL介绍&使用nestjs构建GraphQL查询服务

Graphql 突变查询不适用于 express-graphql

当我从 Angular 传递 graphql 查询时,为啥 GraphQL 控制器中的参数查询为空?

《GraphQL 名词 101:解析 GraphQL 的查询语法》译

我可以通过 graphQL 查询多次查询 GraphQL 单一响应吗?

Reactjs / Graphql:在页面加载时停止执行graphql查询