5. Apollo 沙盒浏览器
5m

概述

我们有足够的资源来测试我们的。我们可以使用 curl 命令向它发送请求—— 毕竟会接受 HTTP 请求!让我们通过使用 GraphQL IDE 来简化我们的工作。

在本课中,我们将

  • 了解使用
  • 为沙盒设置 CORS
  • 检查 的架构
  • 构建我们的第一个

Apollo 沙盒

输入 Apollo 沙盒。沙盒免费使用,不需要账户。它是 平台的一部分,有助于本地图开发。

Apollo GraphOS 是一个完整的云平台,用于构建、管理和扩展您的 提供了一套工具和服务,使产品开发人员能够更快地专注于构建更好的应用程序。

使用沙盒,我们可以加载 的架构,并使用一些很酷的 功能(如架构参考和浏览器)来探索它。

浏览器是一个功能强大的 Web IDE,用于创建、运行和管理 。它使我们能够轻松快速地构建操作,查看操作历史记录,查看响应提示,并与他人共享操作。

转到浏览器,然后前往 的地址 https://studio.apollographql.com/sandbox

让我们尝试连接到我们的服务器。在左上角,粘贴 https://127.0.0.1:5059/graphql 并按 Enter 或单击该框之外。

https://studio.apollographql.com/sandbox/explorer

Explorer connected to our local endpoint

糟糕!我们看到一个红色的状态圆圈,并显示一条消息“无法访问服务器”。如果我们单击“更愿意自行诊断”提示,第一个建议是检查 CORS(跨源请求)。实际上,如果我们在浏览器中打开开发者工具,就会看到一条控制台消息

Access to fetch at 'https://127.0.0.1:5059/graphql' from origin
'https://studio.apollographql.com' has been blocked by CORS policy.

为沙盒设置 CORS

要使沙盒能够连接到我们的 ,我们需要设置 CORS。

注意:您可以在 Microsoft .NET 文档 中找到有关 在 Microsoft .NET 文档中启用 CORS 的更详细的信息。

打开 Program.cs 文件。

首先,让我们添加一个专门针对沙盒的 CORS 策略,以允许服务器接收任何标头和方法。

Program.cs
builder
.Services
.AddCors(options =>
{
options.AddDefaultPolicy(builder =>
{
builder
.WithOrigins("https://studio.apollographql.com")
.AllowAnyHeader()
.AllowAnyMethod();
});
});

注意:此代码段与我们添加 到 Web 应用程序服务的位置是 分开 的。

然后,在初始化 app 的行下面,让我们添加 CORS 中间件以允许跨域请求。

Program.cs
app.UseCors();

就是这样!让我们保存更改并使用 dotnet run 重新启动服务器。

探索我们的架构

回到沙盒,我们现在应该在端点旁边看到一个绿色的状态圆圈,错误消息消失了!

太棒了,让我们看看我们的架构,它是我们主导航中的第一个选项卡。

https://studio.apollographql.com/sandbox/schema

Schema page

这里我们对我们的架构有完整的视图和参考!现在它很稀疏,但我们可以看到我们的 Query 类型,它有一个 hello ,它返回一个 String 类型。

选项卡中,我们还可以看到以 SDL 语法表示的架构。

https://studio.apollographql.com/sandbox/schema

SDL page

请记住,我们在代码中使用了基于注释的方法,Hot Chocolate 负责将其转换为 并将 C# 类型转换为 GraphQL 类型。

它还将 C# 约定转换为 约定!例如,GraphQL 中的 以小写字母开头,但 函数以大写字母开头。因此,尽管我们在 C# 代码中将字段的解析器函数写为 Hello(带大写“H”),但在我们的 hello(带小写“h”)中看到了 !使用 Hot Chocolate 框架,我们可以继续在我们熟悉的 C# 环境和约定中进行编码,而无需在其中记住 GraphQL。

探索浏览器

让我们回到浏览器页面。

中间的 操作 面板是我们创建查询的地方。浏览器可能已经填写了一个默认的 。让我们使用“+”按钮打开一个新的工作区选项卡,以全新开始。

https://studio.apollographql.com/sandbox/explorer

Sandbox hovering over new workspace

我们可以手动编写 ,或者从左侧的 文档 面板添加

浏览器的 文档 选项卡使我们能够深入了解架构的 ,从 Query 类型的入口点开始。

单击 旁边的加号 (⊕) 按钮会自动将该字段添加到我们当前的 中。这是一种方便的方法,可以组装复杂的查询,而无需记住架构的精确结构或 语法。

https://studio.apollographql.com/sandbox/explorer

Running an operation in Sandbox

继续添加 hello

query Query {
hello
}

操作 面板的顶部是运行我们 的按钮。让我们现在单击它,看看会发生什么:

https://studio.apollographql.com/sandbox/explorer

Running an operation in Sandbox

右侧的 响应 面板显示了从我们的服务器返回的数据。Hello world! 👋

{
"data": {
"hello": "Hello world"
}
}

我们刚刚运行了第一个 GraphQL 查询! 🎉

练习

以下哪些是使用 Apollo 沙盒浏览器的好处?
如何为 Apollo Sandbox 启用 CORS 以连接到我们的 GraphQL 服务器?

关键要点

  • 是一款功能强大的 Web IDE,专为本地 开发而设计。它简化了创建、运行和管理 的过程。
  • 连接到本地 时,可能会出现跨域请求策略导致的 CORS 问题。请确保您的 GraphQL 服务器允许来自 Sandbox URL 的请求。
  • Explorer 允许我们探索我们的 并轻松构建和运行 GraphQL
  • Hot Chocolate 允许开发人员在熟悉的 C# 环境和约定中进行编码。它将这些 C# 类型和约定转换为 和幕后的约定。

接下来

让我们提升这个模式的速度,展示一些播放列表!

上一步

分享您对此课程的疑问和评论

本课程当前处于

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

您需要一个 GitHub 帐户才能在下面发布。没有帐户吗? 改为在我们的 Odyssey 论坛上发布。