flask graphql
v2.0.1
将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 ()这将在您的应用中添加/graphql端点并启用GraphIQL IDE。
如果您使用的是石墨烯库的Schema类型,请确保使用graphql_schema属性在GraphQLView视图上作为架构传递。否则, graphql-core的GraphQLSchema是必需的方式。
有关Graphene V3发行说明和GraphQL核3使用的更多信息。
schema :您希望视图在获得有效请求时执行的GraphQLSchema对象。context :将作为context_value传递到GraphQl execute函数的值。默认情况下,按密钥request将请求对象设置为dict 。root_value :您要提供给execute的root_value 。pretty :无论您是否希望响应是精美的JSON。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中间列表。encode :用于响应的编码器(明智地默认为graphql_server.json_encode )。format_error :用于响应的错误格式器(明智地默认为graphql_server.default_format_error 。subscriptions :用于使用GraphQl-WS中订阅的GraphIQL套接字端点。headers :可选的GraphQl字符串用作初始显示的请求标头(如果未提供),将使用存储的标头。default_query :未提供查询时使用的可选GraphQl字符串,并且上一个会话中没有存储的查询。如果未提供,GraphIQL将使用其自己的默认查询。header_editor_enabled :可选的布尔值,可在TRUE时启用标题编辑器。默认为false 。should_persist_headers :一个可选的布尔值,它可以在TRUE时坚持存储。默认为false 。您还可以每个请求每个请求中具有动态的根值,也可以亚类GraphQLView和overwrite get_root_value(self, request) 。
class UserRootValue ( GraphQLView ):
def get_root_value ( self , request ):
return request . user 自V3以来, flask-graphql代码居住在GraphQL-Server存储库中,以保持基本包装与所有其他集成同步的任何破坏更改。为了贡献,请查看贡献。md。