7. 查询入口
5m

概述

让我们 展示 这些播放列表!

在本课中,我们将编写第一个进入 的入口点,使用 Query 类型。

回顾模型

A grid of featured playlists

对于此页面,我们需要检索在主页上显示的播放列表对象列表。

请记住,Query 类型是进入我们架构的入口点,所以让我们转到 Query.cs 文件。

精选播放列表

类似于我们为 函数编写 Hello ,我们将对名为 FeaturedPlaylists 的字段执行相同的操作。我们建议您与您的 消费者协商命名决策!

将返回一个 Playlist 类型列表。

Query.cs
public List<Playlist> FeaturedPlaylists()
{
}

现在让我们编写一些硬编码的模拟数据。我们将初始化一个 Playlist 类型列表,并初始化三个 Playlist 实例,传入 ID 和名称。

Query.cs
return new List<Playlist>
{
new Playlist("1", "GraphQL Groovin'"),
new Playlist("2", "Graph Explorer Jams"),
new Playlist("3", "Interpretive GraphQL Dance")
};

最后,不要忘记描述!

[GraphQLDescription("Playlists hand-picked to be featured to all users.")]

保存,重启服务器,让我们开始

查询精选播放列表

回到 Sandbox,在 架构 页面仍然打开的情况下,让我们检查一下 Query 选项卡。

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

Schema page with Query page open

我们这里有一个新的条目,用于我们的 featuredPlaylists !我们可以使用此页面通过单击 操作 列下字段旁边的播放按钮,快速在 Explorer 中构建

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

Arrow to Play button under Actions

这将打开 Explorer,其中 文档 选项卡显示 featuredPlaylists

在新的工作区选项卡中,让我们构建 来请求每个播放列表中的 idnamefield

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

Explorer page with featured playlists query

提示:您可以使用“”旁边的 + 按钮一键添加所有字段!

GraphQL 操作
query FeaturedPlaylists {
featuredPlaylists {
id
name
description
}
}

运行查询... 然后开始跳舞吧,因为我们有了酷炫的播放列表! 🕺💃

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

Response data

检查 JSON 响应的形状,我们可以看到它遵循我们的 的形状,这是 的优点之一。我们可以在 data 键下看到一个名为 featuredPlaylists(与我们的 同名)的属性,它返回一个列表。对于列表中的每个对象,我们都有与 Playlist 类型关联的字段:idnamedescription

我们也可以在表格视图中看到这一点,以获得更紧凑、易于扫描的视图。

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

Response data table view

在我们继续之前,让我们清理 Hello World 示例并从 Query 文件中删除 Hello 函数。

Query.cs
class Query
{
- public string Hello()
- {
- return "Hello world";
- }
// public List<Playlist> FeaturedPlaylists()
}

主要要点

  • The Query 类型是进入 的入口点。

接下来

那些播放列表很有趣,但它们都是硬编码的!在下一课中,我们将深入探讨 Spotify Web API,这是一个 REST API,我们将用它作为我们

上一页

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

本课程目前处于

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

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