我目前正在用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))
但这条路线没有加载。
2条答案
按热度按时间6tqwzwtp1#
这已记录在以下位置:www.example.comhttps://strawberry.rocks/docs/integrations/fastapi#fastapi
从文件上看
uqdfh47h2#
使用FastApi添加Strawberry的新方法也在文档中