向sanic应用程序添加graphql支持
Sanic-GraphQL的Python项目详细描述
Sanic图形ql
使用量
只需使用GraphQLView视图从sanic_graphql
fromsanic_graphqlimportGraphQLViewapp.add_route(GraphQLView.as_view(schema=Schema,graphiql=True),'/graphql')# Optional, for adding batch query support (used in Apollo-Client)app.add_route(GraphQLView.as_view(schema=Schema,batch=True),'/graphql/batch')
这将向您的应用程序添加/graphql终结点。
支持的选项
- schema:要视图的GraphQLSchema对象 在收到有效请求时执行。
- context:作为context传递给^{tt10}的值。$ 功能。默认设置为dict,请求对象位于键request。
- root_value:要提供给的root_value。 executor.execute。
- pretty:您是否希望正确打印响应 json。
- executor:要用于执行查询的Executor。如果提供了AsyncioExecutor实例, 在执行器循环中异步执行查询。
- graphiql:如果True,则可能存在 GraphiQL加载时 直接从浏览器(用于调试和 探索)。
- graphiql_template:插入jinja模板字符串以自定义 格斗。
- jinja_env:设置用于处理graphiql模板的jinja环境。如果jinja的异步模式被启用(通过enable_async=True),则使用 Template.render_async而不是Template.render。如果未设置环境,则回退到基于正则表达式的简单呈现器。
- batch:将graphql视图设置为批处理(用于 Apollo-Client 或 ReactRelayNetworkLayer)
您还可以将GraphQLView子类化并覆盖 get_root_value(self, request)为每个 请求。
classUserRootValue(GraphQLView):defget_root_value(self,request):returnrequest.user
许可证
项目sanic-graphql的部分版权由Syrus Akbary作为项目flask-graphql的一部分持有。项目sanic-graphql的所有其他版权 由Sergey Porivaev持有。
这个项目是由麻省理工学院授权的。