3. 草莓
5m

概述

我们对如何的工作原理有了更好的理解;现在是时候去实现它了!

草莓

本身是一个规范,一个 用于 API 的语言。为了在服务器中实现 GraphQL,我们通常会使用 GraphQL 框架。

例如,如果您是 JavaScript/TypeScript 开发人员,您可能会使用Apollo Server

在 Python 生态系统中,我们可以使用 草莓,一个由草莓团队开发和维护的 库。以下是他们介绍自己的方式:

草莓是一个开发者友好的 用于 Python 的库,专为现代开发而设计。

使用 FastAPI 设置草莓

从您的项目目录中打开一个新的终端。让我们使用 pip 安装草莓。

pip install strawberry-graphql

注意: 确保您已激活第一课中创建的 .venv虚拟环境。

接下来,打开 main.py 在仓库的根目录中。目前,它被设置为从服务器运行的根目录返回一个简单的 "Hello, world!" 消息(默认情况下是 https://127.0.0.1:8000)。

main.py
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def hello_world():
return {"message": "Hello World"}

让我们用一个 端点替换它,使用 Strawberry 的 GraphQLRouter 与 FastAPI。

首先,我们将在 main.py 的顶部导入该包。

main.py
from strawberry.fastapi import GraphQLRouter

GraphQLRouter 是一个 FastAPI 路由器 它充当一个 端点。它接收一个模式、一个路径,以及可选的 GraphQL IDE。

让我们在 app 的初始化下方创建一个 GraphQLRouter 的实例。

main.py
graphql_router = GraphQLRouter(..., path="/", graphql_ide="apollo-sandbox")

我们将使用 ... 作为我们将在下一课中定义的模式的占位符。

我们还将路径设置为根目录 / 以及 IDE 为 apollo-sandbox。我们将在课程的后面学习 Sandbox。

最后,我们将包含 graphql_router 在我们的 FastAPI 应用程序中使用 app.include_router

main.py
app.include_router(graphql_router)

我们也应该删除 hello_world 路由;我们不再需要它。

main.py
- @app.get("/")
- async def hello_world():
- return {"message": "Hello World"}

关键要点

  • 草莓是一个 Python 库,用于使用类型注释构建 API。
  • 草莓提供了与 FastAPI 的集成,它充当 端点。

接下来

我们的 处于待机状态,等待模式。我们将在下一课中满足它的需求!

上一课

分享您关于这节课的问题和评论

本课程目前处于

测试版
.您的反馈有助于我们改进!如果您遇到问题或困惑,请告诉我们,我们会帮助您。所有评论都是公开的,必须遵守 Apollo 行为准则。请注意,已解决或已处理的评论可能会被删除。

您需要一个 GitHub 帐户才能在下方发布。还没有帐户? 请在我们的奥德赛论坛中发布。