首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Fastapi +草莓GraphQL

Fastapi +草莓GraphQL
EN

Stack Overflow用户
提问于 2021-07-15 00:29:49
回答 1查看 697关注 0票数 1

我目前正在使用fastapi构建一个微服务。

我想通过graphql在另一个路径上公开我的底层数据。来自starlette的直接集成已经被弃用,所以我尝试使用推荐的包strawberry。目前,它似乎不可能与grapqhl结合使用。

示例

my_grapqhql.py

代码语言:javascript
复制
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

代码语言:javascript
复制
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'

当我切换到用于挂载模块的最后一行时,至少要启动:

代码语言:javascript
复制
app.mount("/graphql", GraphQL(schema))

但是路由没有加载。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-07-15 17:33:08

我很快就会看到这个文档:https://github.com/strawberry-graphql/strawberry/pull/1043

要使用草莓和FastAPI,您可以执行以下操作:

代码语言:javascript
复制
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)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68381893

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档