Fastapi + 草莓 GraphQL
Fastapi + Strawberry GraphQL
我目前正在使用 fastapi
构建微服务。
我想通过 graphql
在另一条路线上公开我的基础数据。
来自 starlette 的直接集成已被弃用,因此我尝试使用推荐的软件包之一 strawberry
。
目前看来无法与grapqhl结合使用
例子
my_grapqhql.py
from typing import List
import strawberry
@strawberry.type
class Book:
title: str
author: str
@strawberry.type
class Query:
books: List[Book]
schema = strawberry.Schema(query=Query)
我试过的
在fastapi文档中,asgi组件是这样添加的:
main.py
from fastapi import FastAPI
from strawberry.asgi import GraphQL
from .my_graphql.py import schema
app = FastAPI()
app.add_middleware(GraphQL, schema=schema)
不幸的是,这不起作用:
TypeError: __init__() got an unexpected keyword argument 'app'
当我切换最后一行以挂载模块时至少开始:
app.mount("/graphql", GraphQL(schema))
但是路由没有加载。
我很快就会记录下来:https://github.com/strawberry-graphql/strawberry/pull/1043
要使用 Strawberry 和 FastAPI,您可以执行以下操作:
from fastapi import FastAPI
from strawberry.asgi import GraphQL
from api.schema import Schema
graphql_app = GraphQL(schema)
app = FastAPI()
app.add_route("/graphql", graphql_app)
我目前正在使用 fastapi
构建微服务。
我想通过 graphql
在另一条路线上公开我的基础数据。
来自 starlette 的直接集成已被弃用,因此我尝试使用推荐的软件包之一 strawberry
。
目前看来无法与grapqhl结合使用
例子
my_grapqhql.py
from typing import List
import strawberry
@strawberry.type
class Book:
title: str
author: str
@strawberry.type
class Query:
books: List[Book]
schema = strawberry.Schema(query=Query)
我试过的
在fastapi文档中,asgi组件是这样添加的:
main.py
from fastapi import FastAPI
from strawberry.asgi import GraphQL
from .my_graphql.py import schema
app = FastAPI()
app.add_middleware(GraphQL, schema=schema)
不幸的是,这不起作用:
TypeError: __init__() got an unexpected keyword argument 'app'
当我切换最后一行以挂载模块时至少开始:
app.mount("/graphql", GraphQL(schema))
但是路由没有加载。
我很快就会记录下来:https://github.com/strawberry-graphql/strawberry/pull/1043
要使用 Strawberry 和 FastAPI,您可以执行以下操作:
from fastapi import FastAPI
from strawberry.asgi import GraphQL
from api.schema import Schema
graphql_app = GraphQL(schema)
app = FastAPI()
app.add_route("/graphql", graphql_app)