flask graphql
v2.0.1
FlaskアプリケーションにGraphQLサポートを追加します。
flask_graphqlからのGraphQLViewビューを使用してください
from flask import Flask
from flask_graphql import GraphQLView
from schema import schema
app = Flask ( __name__ )
app . add_url_rule ( '/graphql' , view_func = GraphQLView . as_view (
'graphql' ,
schema = schema ,
graphiql = True ,
))
# Optional, for adding batch query support (used in Apollo-Client)
app . add_url_rule ( '/graphql/batch' , view_func = GraphQLView . as_view (
'graphql' ,
schema = schema ,
batch = True
))
if __name__ == '__main__' :
app . run ()これにより、アプリにEndpointを追加/graphqlが追加し、GraphIQL IDEが有効になります。
グラフェンライブラリのSchemaタイプを使用している場合は、 graphql_schema属性を使用して、 GraphQLViewビューでスキーマとして渡すようにしてください。それ以外の場合、 graphql-coreのGraphQLSchema行く方法です。
Graphene V3リリースノートとGraphQL-Core 3の使用の詳細。
schema :有効なリクエストを取得したときにビューを実行したいGraphQLSchemaオブジェクト。context : context_value to GraphQL executeために渡す値。デフォルトでは、キーrequestでリクエストオブジェクトを使用してdictに設定されます。root_value :graphql executeに提供するroot_value 。pretty :応答をかなり印刷したいかどうか。graphiql : Trueの場合、ブラウザから直接読み込まれたときにGraphIQLを提示することができます(デバッグと探索に役立つツール)。graphiql_version :ロードするGraphiqlバージョン。デフォルトは「1.0.3」になります。graphiql_template :jinjaテンプレート文字列を挿入して、graphiqlをカスタマイズします。graphiql_html_title :表示するgraphiqlタイトル。デフォルトは「graphiql」になります。batch :GraphQLビューをバッチとして設定します(Apollo-ClientまたはReactrelayNetworkLayerで使用するため)middleware :GraphQL MiddleWaresのリスト。encode :応答に使用するエンコーダー(Sermentive Defaultはgraphql_server.json_encodeに耐えます)。format_error :応答に使用するエラーフォーマッタ( graphql_server.default_format_errorにSEMSINIVE DEFAULTがgraphql_server.defaultにデフォルトです。subscriptions :GraphQL-WSでサブスクリプションを使用するためのGraphIQLソケットエンドポイント。headers :最初の表示リクエストヘッダーとして使用するオプションのGraphQL文字列は、提供されていない場合、保存されたヘッダーが使用されます。default_query :クエリが提供されておらず、前のセッションから保存されたクエリが存在しない場合に使用するオプションのGraphQL文字列。提供されていない場合、GraphIQLは独自のデフォルトクエリを使用します。header_editor_enabled :Trueの場合にヘッダーエディターを有効にするオプションのブール値。デフォルトはfalseになります。should_persist_headers :トゥルーの場合、ヘッダーをストレージに保持できるようにするオプションのブール値。デフォルトはfalseになります。また、 GraphQLViewをサブクラスし、 get_root_value(self, request)を上書きして、要求ごとに動的なルート値を持つこともできます。
class UserRootValue ( GraphQLView ):
def get_root_value ( self , request ):
return request . user V3以降、 flask-graphqlコードはGraphQL-Serverリポジトリに住んでおり、他のすべての統合と同期してベースパッケージの壊れた変更を維持します。貢献するために、Convributing.mdをご覧ください。