2017-10-03 17 views
1

私は標準を探して、GraphTQLクエリ/レスポンスを圧縮してMQTTを通して送信する方法を探しています。GraphQLクエリを圧縮しますか?

私ができる何かを考えています:

  • は、余分なスペース
  • は、余分な改行(\n\r)を削除。
  • 圧縮メッセージ(zlibのは?)

私はグラフェンとPython用の他のGraphQLモジュールに見ていたが、私はまだ探しています何を発見していません。

私には紛失している用語がありますか、それとも何もしてはいけないことはありますか?

+0

ありがとうございます。これはおそらく、JSON over AJAXを圧縮することと同じです。 –

答えて

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 unneccessary whitespace. 

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

これは、すべてのクエリが既にunicode(パイソン2)またはstr(Pythonの3)オブジェクトであることを前提としています。

doctestの実行が成功します。

関連する問題