【发布时间】:2021-09-23 15:47:42
【问题描述】:
我目前正在使用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))
但是路由没有加载。
【问题讨论】:
标签: python graphql fastapi strawberry-graphql