Добавляет поддержку GraphQL в ваше приложение Flask.
Просто используйте представление GraphQLView от flask_graphql
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 конечную точку в ваше приложение и включит IDE Graphiql.
Если вы используете тип Schema библиотеки графена, обязательно используйте атрибут graphql_schema для прохода в виде схемы в представлении GraphQLView . В противном случае, GraphQLSchema из graphql-core -это путь.
Более подробная информация на Graphene v3 Notes Notes и использование GraphQL-Core 3.
schema : объект GraphQLSchema , который вы хотите, чтобы представление было выполнено, когда он получает действительный запрос.context : значение для прохождения как функция context_value TO GRAPHQL execute функцию. По умолчанию устанавливается dict с объектом запроса в request ключа.root_value : root_value вы хотите предоставить для graphql execute .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 Middlewares.encode : Encoder для использования для ответов (разумно по умолчанию graphql_server.json_encode ).format_error : форматер ошибок для использования для ответов (разумно по умолчанию graphql_server.default_format_error .subscriptions : конечная точка Graphiql Socket для использования подписок в GraphQL-WS.headers : дополнительная строка GraphQL для использования в качестве первоначальных отображаемых заголовков запросов, если не предоставлены, будут использоваться хранимые заголовки.default_query : дополнительная строка GraphQL для использования, когда запрос не предоставляется, и сохраненный запрос не существует из предыдущего сеанса. Если не предоставлено, Graphiql будет использовать собственный запрос по умолчанию.header_editor_enabled : необязательный логический, который позволяет редактору заголовка, когда True. По умолчанию ложно .should_persist_headers : необязательный логический, который позволяет сохранять заголовки в хранилище, когда True. По умолчанию ложно . Вы также можете подкласс GraphQLView и перезаписать get_root_value(self, request) чтобы иметь динамическое корневое значение для запроса.
class UserRootValue ( GraphQLView ):
def get_root_value ( self , request ):
return request . user С момента V3, код flask-graphql живет в репозитории GraphQL-Server, чтобы сохранить любые нарушающие изменения в базовом пакете на синхронизации со всеми другими интеграциями. Чтобы внести свой вклад, пожалуйста, посмотрите на Appling.md.