Movatterモバイル変換


[0]ホーム

URL:


跳转至
Join theFastAPI Cloud waiting list 🚀
Follow@fastapi onX (Twitter) to stay updated
FollowFastAPI onLinkedIn to stay updated
Subscribe to theFastAPI and friends newsletter 🎉
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor
sponsor

GraphQL

🌐 由 AI 与人类协作翻译

本翻译由人类引导的 AI 生成。🤝

可能存在误解原意或不够自然等问题。🤖

你可以通过帮助我们更好地引导 AI LLM来改进此翻译。

英文版本

由于FastAPI 基于ASGI 标准,因此很容易集成任何也兼容 ASGI 的GraphQL 库。

你可以在同一个应用中将常规的 FastAPI 路径操作与 GraphQL 结合使用。

提示

GraphQL 解决一些非常特定的用例。

与常见的Web API 相比,它有各自的优点缺点

请确保评估在你的用例中,这些好处是否足以弥补这些缺点。 🤓

GraphQL 库

以下是一些支持ASGIGraphQL 库。你可以将它们与FastAPI 一起使用:

使用 Strawberry 的 GraphQL

如果你需要或想要使用GraphQLStrawberry推荐的库,因为它的设计与FastAPI 最为接近,全部基于类型注解

根据你的用例,你可能会更喜欢其他库,但如果你问我,我大概率会建议你先试试Strawberry

下面是一个将 Strawberry 与 FastAPI 集成的小预览:

importstrawberryfromfastapiimportFastAPIfromstrawberry.fastapiimportGraphQLRouter@strawberry.typeclassUser:name:strage:int@strawberry.typeclassQuery:@strawberry.fielddefuser(self)->User:returnUser(name="Patrick",age=100)schema=strawberry.Schema(query=Query)graphql_app=GraphQLRouter(schema)app=FastAPI()app.include_router(graphql_app,prefix="/graphql")

你可以在Strawberry 文档中了解更多信息。

还有关于将 Strawberry 与 FastAPI 结合使用的文档。

Starlette 中较早的GraphQLApp

早期版本的 Starlette 包含一个GraphQLApp 类,用于与Graphene 集成。

它已在 Starlette 中被弃用,但如果你的代码使用了它,你可以轻松迁移starlette-graphene3,它覆盖相同的用例,且接口几乎完全一致

提示

如果你需要 GraphQL,我仍然建议看看Strawberry,因为它基于类型注解而不是自定义类和类型。

了解更多

你可以在GraphQL 官方文档中了解更多关于GraphQL 的内容。

你也可以通过上面的链接阅读各个库的更多信息。


[8]ページ先頭

©2009-2026 Movatter.jp