概述
现在,我们将保持简单,并尝试一个经典的“你好世界”示例作为我们的模式。别担心,我们稍后会深入探讨播放列表和曲目!
在本课中,我们将
- 了解
Query
类型 - 实现一个解析器 函数用于“你好世界”示例
- 注册
Query
类型在我们的 GraphQL 服务器 - 比较和对比基于注释、模式优先和代码优先的方法
The Query
类型
The Query
类型定义了我们允许从我们的 GraphQL 服务器 请求的所有内容。它是我们模式的入口点!
首先,让我们在项目的根目录中创建一个名为 Types
的文件夹,我们将在其中组织所有 GraphQL 模式 类型。
然后,让我们添加一个名为 Query
的类。
namespace Odyssey.MusicMatcher;public class Query{// where Query resolver functions will go}
注意: 如果你使用的是 VS Code,C# Dev Kit 扩展 为你提供“解决方案资源管理器”部分的访问权限。使用它可以快速创建带有上面显示的样板代码的文件夹和类。
在 Query
类中,让我们编写一个名为 解析器 的函数,用于一个名为 Hello
的字段。它将是一个 public
函数,返回一个 string
类型。在函数主体中,我们将返回一个硬编码值为 "Hello world"
的值。
public string Hello(){return "Hello world";}
这是我们的第一个 解析器,一个用于填充模式中 字段 数据的函数。请记住,使用基于注释的方法,Hot Chocolate 会根据我们的 解析器 生成 GraphQL 模式。因此,现在,我们的模式看起来像这样:
type Query {hello: String!}
注册 Query
类型
我们的 GraphQL 服务器 需要了解 Query
类型。跳转到 Program.cs
文件,找到我们添加 GraphQL 服务器 的行。我们将链接一个名为 AddQueryType
的新函数,并将 Query
类型作为参数传递进去。
builder.Services.AddGraphQLServer().AddQueryType<Query>();
The Program.cs
文件不知道这个 Query
类型来自哪里,因此我们还需要在文件顶部导入命名空间。
using Odyssey.MusicMatcher;
注意: 这个命名空间在您克隆的入门代码中默认定义。如果您查看 Query.cs
文件的顶部,您可以看到 Query
类型被定义为 Odyssey.MusicMatcher
命名空间的一部分。如果您将此命名空间更改为另一个值,您也需要相应地更改 Program.cs
中的导入!
让我们不要忘记保存更改并使用 dotnet run
重新启动服务器。
练习
Query
类型的用途是什么?关键要点
- 在 GraphQL 架构中,
Query
类型中的 字段 是我们的架构的入口点。这些是 GraphQL 消费者可以 查询 的顶级 字段。 - 我们可以使用函数
AddQueryType<Query>()
将 Query 文件与我们的 GraphQL 服务器 连接起来。 - 一个 解析器 是一个函数,它用于填充架构中 字段 的数据。
接下来
我们的 GraphQL 服务器 已准备好接收查询。在下一课中,我们将学习编写和发送查询的最佳方式:Apollo Explorer。
分享您关于本课的问题和评论
本课程目前处于
您需要一个 GitHub 帐户才能在下方发布。没有帐户? 请改在我们的 Odyssey 论坛上发布。