为您的Sanic应用添加GraphQL支持
项目描述
Sanic-GraphQL
基于 flask-graphql,由 Syrus Akbary 开发。
使用方法
只需使用来自 sanic_graphql 的 GraphQLView 视图。
from sanic_graphql import GraphQLView
app.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:传递给 graphql() 函数的 context 值。默认设置为包含请求对象(键为 request)的 dict。
root_value:要提供给 executor.execute 的 root_value。
pretty:是否要格式化输出 JSON 响应。
executor:用于执行查询的 Executor。如果提供了 AsyncioExecutor 实例,将在执行器的循环中异步执行查询。
graphiql:如果为 True,则可以从浏览器直接加载时显示 GraphiQL(一个用于调试和探索的有用工具)。
graphiql_template:注入 Jinja 模板字符串以自定义 GraphiQL。
jinja_env:设置用于处理 GraphiQL 模板的 Jinja 环境。如果 Jinja 的异步模式已启用(通过 enable_async=True),则使用 Template.render_async 而不是 Template.render。如果未设置环境,则回退到简单的基于正则表达式的渲染器。
batch:将 GraphQL 视图设置为批量(用于在 Apollo-Client 或 ReactRelayNetworkLayer)中使用)。
您还可以继承 GraphQLView 并重写 get_root_value(self, request) 以使每个请求都有动态的根值。
class UserRootValue(GraphQLView):
def get_root_value(self, request):
return request.user
许可证
项目 sanic-graphql 的部分版权归 Syrus Akbary 所有,作为项目 flask-graphql 的一部分。项目 sanic-graphql 的其他版权归 Sergey Porivaev 所有。
本项目受 MIT 许可证许可。
项目详情
下载文件
下载适用于您平台的应用程序。如果您不确定要选择哪个,请了解有关 安装包 的更多信息。