通过复制和粘贴快速学习GraphQL:示例「个人介绍页面」
首先
为了帮助初学者学习JavaScript,我准备了一个针对GraphQL的教程。这是一个非常简单的示例,只需要一页的网页内容,但你可以通过它学习如何在客户端和服务器端之间交换数据。
为了让您在理解之前先体验到”运动的感觉”,该教程几乎全部都是复制粘贴,进展迅速。
过去的内容 de
-
- コピペで素早く学ぶ GraphQL、Apollo Server Getting Started
- コピペで素早く学ぶ GraphQL、Apollo Server Getting Resolver
预先准备
请确保已安装Node和npm。
克隆 git 存储库
请在终端中执行以下命令。
git clone https://github.com/richardimaoka/tutorial-apollo-app-self-intro.git
cd tutorial-apollo-app-self-intro
稍后我们将打开另一个终端,因此这个终端称为“主终端”。
1. 通过HTML确认样品完成后的外观。
我们稍后会使用React进行重新实现,但首先让我们以HTML简单示例的形式来确认样式完成。
请执行以下命令。
cp answers/step1-html/index1.html index.html
cp answers/step1-html/profile.png profile.png
请在浏览器中打开index.html。

结果:只要出现以下内容即可称为OK。

从本地文件服务器获取个人资料图片
请打开另一个终端,并执行以下命令。
cp -r answers/step1-file-server file-server
cd file-server
npm install
动作:请执行以下命令。
npm run start
结果:在 http://localhost:8080/ 上启动了文件服务器。

请在主要终端上执行以下命令时,保持文件服务器运行。
cp answers/step1-html/index2.html index.html
rm profile.png
请刷新之前的浏览器界面。
结果:如果显示出相同的画面,则表示OK。

2. 搭建React环境
请执行以下命令。
rm -f index.html
请打开一个新的终端,并执行以下命令。
cp -r answers/step2-client1 client
cd client
npm install
React客户端终端
npx npm-check-updates
结果:如果显示如下结果,则表示正常。
所有的依赖关系与最新的包版本匹配 🙂
已经安装了package.json中指定的npm包的最新版本。
如果不是所有的依赖关系都与最新的包版本匹配,请如何处理?
apollo-server ^3.6.0 → ^3.6.2
graphql ^16.1.0 → ^16.3.0
运行命令npx npm-check-updates -u来升级package.json
操作:按照上述消息,执行以下命令
React客户端终端
npx npm-check-updates -u
npm install
这样就会安装最新版本的npm包。
请执行以下命令。
npm run start
结果:在http://localhost:3000/上会显示以下页面。

npx create-react-app client –template typescript
在完成上述步骤后,client目录中包含了从上述命令生成的应用程序中剔除了本教程不使用的部分,并简化了源代码的内容。
仅使用React完成样本时的外观构建。
下一步,我们将使用仅客户端的React,在不准备GraphQL服务器的情况下,构建样品完成时的外观。
请执行以下命令。
cp -r answers/step2-client2/src client
rm -f client/src/App.tsx
动作:请访问http://localhost:3000
结果:只需以以下方式显示即可。

const profile = {
imgSrc: “http://localhost:8080/images/profile.png”,
name: “エメラルド 君沢”,
jobTitle: “データベース エンジニア”,
residence: “東京都 南アザラシ区 ペンギン町”,
description:
” データベース エンジニアのエメラルド 君沢です。金融関連の会社の社内IT部門にて9年勤めたあと、3年ほどベンチャー企業を転々とし、いまは広告関連の会社でエンジニアをやっています。”,
};
然后将其传递给ProfileComponent.tsx组件。
现在,让我们将通过GraphQL服务器获取的Profile类型对象来替代在这个React组件中定义的profile的使用方式。
3. 启动GraphQL服务器
请在一个新的终端中执行以下命令。
cp -r answers/step3-server1 server
cd server
npm install
请执行以下命令。
npm run start
请在浏览器中打开 http://localhost:4000/
结果:将显示类似以下的Apollo Studio Explorer界面。

请点击“查询服务器”按钮。
结果:会转到以下这样的页面。

请将以下查询内容粘贴到Apollo Studio Explorer页面上,然后点击”Run”按钮执行。
{
me {
name
residence
imgSrc
jobTitle
description
}
}
结果:可以获得一个由字符串”Hello World”填充的响应作为模拟值。

从这一点开始,我们将使用解析器而不是模拟数据来从GraphQL服务器返回响应。
在GraphQL服务器中返回Profile对象。
请执行以下命令
cp answers/step3-server2/* server
schema.gql
type Query {
me: Profile
}
type Profile {
imgSrc: String
name: String
residence: String
jobTitle: String
description: String
}
在index.ts中加载data.json,并将其作为GraphQL服务器的响应直接使用。
index.ts
const jsonDataFile = __dirname.concat(“/data.json”);
请再次通过Apollo Studio Explorer的界面执行之前的查询操作。
结果:只需以以下方式显示即可。

在React客户端中,使用从GraphQL服务器获取的响应。
请执行以下命令。
cp -r answers/step4-client1/* client
操作:请使用Ctrl+C停止React客户端的终端。
请执行以下命令。
npm install
请执行以下命令。
npm start
请访问 http://localhost:3000。
结果:如果显示如下内容,则表示一切正常。

5. 概括
使用GraphQL服务器和React客户端来组合并构建应用程序的步骤已在此处介绍。
这个网页非常简洁,但它可以作为一个示范,告诉你应该如何在服务器端和客户端端设置GraphQL。
请您将其作为增加功能的框架来尝试使用。
下一个教程 (xià yī ge
请提供相关参考资料。
请给出相关的参考资料。
请提供相应的参考资料。
请提供相关资料的参考。
请提供相应的参考材料。
-
- Apollo Basics 公式 https://www.apollographql.com/docs/
Apollo Server 公式 https://www.apollographql.com/docs/apollo-server/
Node.js http-server https://github.com/http-party/http-server
GraphQL 公式 https://graphql.org/
How to GraphQL https://www.howtographql.com/