from starlette_graphene3 import GraphQLApp
from graphene import Schema, Int, String, List, ObjectType
from fastapi import FastAPI
class Query(ObjectType):
hello = String(name=String(default_value="World"))
def resolve_hello(self, info, name):
return 'Hello ' + name
app = FastAPI()
@app.get("/")
def home():
return {
"message": "Hello you may consider going to /graphql."
}
schema = Schema(query=Query)
app.mount("/", GraphQLApp(schema=schema))
上面的代码运行没有错误,但如果我尝试从浏览器访问该页面,这就是输出。
访问该
graphql
路线后控制台结果为
我该如何解决这个问题。拜托我需要你的帮忙。谢谢!
如果您尝试到达
/graphql
端点,则应按如下方式安装:
app.mount("/graphql", GraphQLApp(schema=schema))
mount()
中的第一个参数接受为 GraphQLApp 提供服务的路由。
GraphQl 自版本 0.17.0 起已从 Starlette 中删除。
https://www.starlette.io/graphql/
要使其工作,您必须为 graphiQL ui 导入图形处理程序:
from starlette_graphene3 import GraphQLApp, make_graphiql_handler
然后,您必须指定 get 时发生的情况:
app.mount("/graphql", GraphQLApp(schema=schema, on_get=make_graphiql_handler()))
您可以使用任何您需要的作为安装点。