向sanic应用程序添加graphql支持

Sanic-GraphQL的Python项目详细描述


traviscoverallspypi

Sanic图形ql

GraphQL支持添加到Sanic应用程序中。

基于flask-graphqlSyrus Akbary

使用量

只需使用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终结点。

与SANIC共享EventLoop

为了将sanic的eventloop传递给graphql的AsyncioExecutor,请使用before_startlistener:

@app.listener('before_server_start')definit_graphql(app,loop):app.add_route(GraphQLView.as_view(schema=Schema,executor=AsyncioExecutor(loop=loop)),'/graphql')

支持的选项

  • schema:要视图的GraphQLSchema对象 在收到有效请求时执行。
  • context:作为context传递给^{tt10}的值。$ 功能。默认设置为dict,请求对象位于键request
  • root_value:要提供给的root_valueexecutor.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-ClientReactRelayNetworkLayer

您还可以将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持有。

这个项目是由麻省理工学院授权的。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java迭代图形框架聚合达到内存限制的消息   反编译和开发人员向Android应用程序提供java安全密钥   活页夹中的java Vaadin上传组件,例如Crud编辑器   java如何定义0090当我有了每个字符   带有AOP的java截取私有注释方法   在Java中暂停并恢复动画(thread.sleep)   java在JavaFX中从不同的控制器向TableView添加行   java如何通过Spring使用脚本初始化inmemory HSQLDB   windows找到了绝对的java。通过编程从java代码获取exe路径   Java同步、信号量和队列的多线程性能   java异步任务回调未调用   java在迷宫中用坐标寻找最短路径   Java:并行处理数组,查找发生异常的位置   java我无法理解我收到的错误   如何调用。bat文件,并使用java中的ProcessBuilder发送字符串   java在mysql数据库中插入日期   将ArrayList的内容显示为格式正确的JSON for Java REST API   java@OneToMany注释SQLSyntaxErrorException:ORA000904无效标识符