1. 概述和设置
5m

欢迎来到您的 GraphQL 之旅的起点!

什么是?GraphQL 是现代网络的开发者友好型 语言。它改变了应用程序从 API 获取数据的方式,使您能够通过单个查询获得所需的确切内容。

以强类型模式为核心, 帮助您定义跨任意数量系统的数据之间的关系,使您能够专注于 您的数据能做什么 而不是存储在哪里。

在本课程中,我们将学习 如何融入我们现有的体系结构,以及它如何与现有的 REST API 和其他 一起工作。我们将学习如何使用查询、、模式和 在我们的 GraphQL API 中。

A diagram showing GraphQL as the contact point between multiple clients and the complex architecture of a modern backend

我们将使用 Hot Chocolate 构建一个 。不,不是热腾腾的巧克力饮料!我们说的是面向 .NET 开发人员的 GraphQL 服务器框架。

准备好撸起袖子,写一些代码,测试您的理解,并构建一些很酷的东西!

在本课中,我们将

  • 了解我们正在构建的内容
  • 设置我们的项目环境

先决条件

本课程使用 C# 和 .NET 8。您应该熟悉C# 基本编程概念 以便跟随本课程。

我们还建议您熟悉 如何使用 REST API 和 HTTP 请求 的基础知识。

我们正在构建的内容

听着!准备好 调入 我们在本课程中构建的内容? 隆隆鼓声🥁

如果您从所有这些与音乐相关的提示中看不出,我们正在构建一个名为 MusicMatcher 的音乐目录 API,它可以帮助我们为合适的时刻找到合适的配乐。

Mockup of MusicMatcher

对于 MusicMatcher 的第一个迭代,我们将专注于播放列表:展示特色播放列表、列出播放列表的曲目和添加曲目。在未来的课程中,我们将添加更多功能,例如分页、身份验证、中间模式设计概念和联合。

项目设置

要跟随本课程,您需要以下内容

代码编辑器或 IDE

我们将使用 VS Code,但您可以随意使用您最喜欢的用于 .NET 开发的编辑器或 IDE!

在本地克隆存储库

项目存储库是运行以下命令的结果dotnet new web -o Odyssey.MusicMatcher 以基于 ASP.NET Core Empty web 模板创建一个新项目。它还在 README 中包含一些有关如何启动和运行的额外说明。

git clone https://github.com/apollographql-education/odyssey-intro-hotchocolate

以下是项目的结构

📦 Odyssey.MusicMatcher
┣ 📂 Data
┃ ┣ 📄 swagger.json
┣ 📂 Properties
┃ ┣ 📄 launchSettings.json
┃ 📄 appsettings.Development.json
┃ 📄 appsettings.json
┃ 📄 Odyssey.MusicMatcher.csproj
┃ 📄 Odyssey.MusicMatcher.sln
┃ 📄 Program.cs
┗ 📄 README.md

要安装依赖项,请运行

dotnet build

没有安装 .NET? 在此处查找您的下载链接。我们在这门课程中使用 .NET 8。

然后,检查项目是否可以成功运行

dotnet run

您应该看到

Odyssey.MusicMatcher ❯ dotnet run
Building...
info: Microsoft.Hosting.Lifetime[14]
Now listening on: https://127.0.0.1:5059
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Development
info: Microsoft.Hosting.Lifetime[0]
Content root path: /Users/your-path/Odyssey.MusicMatcher

项目将在 https://127.0.0.1:5059 上运行,默认情况下!

任务!

关键要点

  • 使您能够通过单个 精确地检索数据,从而无需在客户端应用程序端导航多个 REST 端点。
  • Hot Chocolate 是一个面向 .NET 开发人员的 框架。

接下来

让我们深入了解所有与 相关的内容。在下一课中,我们将详细了解 GraphQL 如何融入我们现有的体系结构,以及构成 的确切内容。

下一步

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

本课程目前处于

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

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