推荐答案
在 FastAPI 中使用 GraphQL 可以通过集成 strawberry
或 graphene
等库来实现。以下是使用 strawberry
的示例:
-- -------------------- ---- ------- ---- ------- ------ ------- ------ ---------- ---- --------------- ------ ------- - -- ------- -- ---------------- ----- ----- ------ --- ------- --- - ---- ---------------- ----- ------ ----------------- --- ---------- -- ----- ------ --------------- ----- -------- ---------- ----- ------------ - -- ------ ------ - ------------------------------ - -- ------- -- --- - --------- - -- ------- -- ------------------------- ----------------
本题详细解读
1. 安装依赖
首先,你需要安装 strawberry
库:
pip install strawberry-graphql
2. 定义 GraphQL 类型
在 GraphQL 中,类型是构建查询的基础。你可以使用 @strawberry.type
装饰器来定义类型。例如,Book
类型包含 title
和 author
两个字段。
3. 定义查询
查询是 GraphQL 的核心部分。你可以通过 @strawberry.type
装饰器定义一个查询类,并在其中添加查询字段。例如,Query
类中的 book
字段返回一个 Book
对象。
4. 创建 schema
strawberry.Schema
用于将查询和类型组合成一个 GraphQL schema。这个 schema 将被用于处理 GraphQL 请求。
5. 创建 FastAPI 应用
使用 FastAPI()
创建一个 FastAPI 应用实例。
6. 添加 GraphQL 路由
通过 app.add_route
方法将 GraphQL 路由添加到 FastAPI 应用中。GraphQL(schema)
会创建一个 ASGI 应用,用于处理 GraphQL 请求。
7. 运行应用
最后,运行 FastAPI 应用,你可以通过 /graphql
路径访问 GraphQL 服务。
uvicorn main:app --reload
通过以上步骤,你就可以在 FastAPI 中成功集成 GraphQL 了。