4. 你好世界
5m

概述

现在,我们将保持简单,并尝试一个经典的“你好世界”示例作为我们的模式。别担心,我们稍后会深入探讨播放列表和曲目!

在本课中,我们将

  • 了解Query 类型
  • 实现一个 函数用于“你好世界”示例
  • 注册 Query 类型在我们的
  • 比较和对比基于注释、模式优先和代码优先的方法

The Query 类型

The Query 类型定义了我们允许从我们的 请求的所有内容。它是我们模式的入口点!

首先,让我们在项目的根目录中创建一个名为 Types 的文件夹,我们将在其中组织所有 类型。

然后,让我们添加一个名为 Query 的类。

Types/Query.cs
namespace Odyssey.MusicMatcher;
public class Query
{
// where Query resolver functions will go
}

注意: 如果你使用的是 VS Code,C# Dev Kit 扩展 为你提供“解决方案资源管理器”部分的访问权限。使用它可以快速创建带有上面显示的样板代码的文件夹和类。

Query 类中,让我们编写一个名为 的函数,用于一个名为 Hello。它将是一个 public 函数,返回一个 string 类型。在函数主体中,我们将返回一个硬编码值为 "Hello world" 的值。

Types/Query.cs
public string Hello()
{
return "Hello world";
}

这是我们的第一个 解析器,一个用于填充模式中 数据的函数。请记住,使用基于注释的方法,Hot Chocolate 会根据我们的 生成 。因此,现在,我们的模式看起来像这样:

生成的 GraphQL 模式
type Query {
hello: String!
}

注册 Query 类型

我们的 需要了解 Query 类型。跳转到 Program.cs 文件,找到我们添加 的行。我们将链接一个名为 AddQueryType 的新函数,并将 Query 类型作为参数传递进去。

Program.cs
builder.Services.AddGraphQLServer()
.AddQueryType<Query>();

The Program.cs 文件不知道这个 Query 类型来自哪里,因此我们还需要在文件顶部导入命名空间。

Program.cs
using Odyssey.MusicMatcher;

注意: 这个命名空间在您克隆的入门代码中默认定义。如果您查看 Query.cs 文件的顶部,您可以看到 Query 类型被定义为 Odyssey.MusicMatcher 命名空间的一部分。如果您将此命名空间更改为另一个值,您也需要相应地更改 Program.cs 中的导入!

让我们不要忘记保存更改并使用 dotnet run 重新启动服务器。

练习

在 GraphQL 中,Query 类型的用途是什么?
什么是 GraphQL 中的解析器?
在基于注释的方法中,如何将 Query 类型注册到 GraphQL 服务器?

关键要点

  • 架构中,Query 类型中的 是我们的架构的入口点。这些是 消费者可以 的顶级
  • 我们可以使用函数 AddQueryType<Query>() 文件与我们的 连接起来。
  • 一个 是一个函数,它用于填充架构中 的数据。

接下来

我们的 已准备好接收查询。在下一课中,我们将学习编写和发送查询的最佳方式:Apollo Explorer。

上一页

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

本课程目前处于

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

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