压缩GraphQL查询?

时间:2017-10-03 14:43:53

标签: python graphql

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

我在想一些可以:

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

我看了一下Graphene和其他GraphQL模块的Python,但我还没找到我想要的东西。

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

1 个答案:

答案 0 :(得分:3)

在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将通过。