FastApi教程|GraphQL

发表时间:2020-03-09

FastAPI 具有用于GraphQL可选择支持(由Starlette直接提供),使用该 graphene 库。

您可以 在同一应用程序上将 正常的FastAPI 路径操作 与GraphQL 结合 使用。

进口和使用 graphene

GraphQL是通过Graphene实现的,您可以查看 Graphene的文档 以获取更多详细信息。

导入 graphene 并定义您的GraphQL数据:

import graphene
from fastapi import FastAPI
from starlette.graphql import GraphQLApp


class Query(graphene.ObjectType):
    hello = graphene.String(name=graphene.String(default_value="stranger"))

    def resolve_hello(self, info, name):
        return "Hello " + name


app = FastAPI()
app.add_route("/", GraphQLApp(schema=graphene.Schema(query=Query)))

添加Starlette的 GraphQLApp

然后导入并添加Starlette的 GraphQLApp

import graphene
from fastapi import FastAPI
from starlette.graphql import GraphQLApp


class Query(graphene.ObjectType):
    hello = graphene.String(name=graphene.String(default_value="stranger"))

    def resolve_hello(self, info, name):
        return "Hello " + name


app = FastAPI()
app.add_route("/", GraphQLApp(schema=graphene.Schema(query=Query)))

信息

这里我们使用 .add_route ,即没有宣布具体的操作添加在Starlette路由(通过继承FastAPI)的方式(如将与 .get() .post() 等)。

检查它

使用Uvicorn运行它,并在 http://127.0.0.1:8000 打开浏览器 。

您将看到GraphiQL Web用户界面:

更多细节

有关更多详细信息,包括:

  • 访问请求信息
  • 添加后台任务
  • 使用普通或异步功能

检查官方的 Starlette GraphQL文档

文章来源互联网,如有侵权,请联系管理员删除。邮箱:417803890@qq.com / QQ:417803890

微配音

Python Free

邮箱:417803890@qq.com
QQ:417803890

皖ICP备19001818号
© 2019 copyright www.pythonf.cn - All rights reserved

微信扫一扫关注公众号:

联系方式

Python Free