SubQuery开发者指南丨Hello World (由SubQuery 托管)

SubQuery中文站
个人专栏
热度: 18753

一文快速掌握如何启动 SubQuery Projects 中的项目运行。

本快速入门的目的是展示如何通过几个简单的步骤让默认启动项目在 SubQuery Projects(我们的管理服务)中运行。

 

我们将采用简单的入门项目(以及我们学到的所有内容。但我们不会在 Docker 中本地运行它,而是利用 SubQuery 的托管基础架构。 换句话说,我们会让 SubQuery 完成所有繁重的工作,运行和管理生产基础设施。

 

学习目标

 

在本快速入门结束时,您应该:

  • 了解所需的先决条件
  • 能够在SubQuery项目中托管项目
  • 运行一个简单的查询以使用 Playground 来获取 Polkadot 主网的块高度
  • 运行一个简单的 GET 查询以使用 cURL 来获取 Polkadot 主网的块高度

 

目标听众

 

本指南面向具有一定开发经验并有兴趣了解有关 SubQuery 的更多信息的新开发人员。

 

视频指南

 

登录此网址,即可观看视频指南教程:https://youtu.be/b-ba8-zPOoo

 

先决条件

 

你将会需要:

• 一个 GitHub 帐户

 

第 1 步:创建您的项目

 

让我们创建一个名为 subql_hellowworld 的项目,并使用您最喜欢的包管理器运行必需的安装、代码生成和构建。

 

托管

 

不要运行 docker 命令

 

第 2 步:创建 GitHub 存储库

 

在 GitHub 中,创建一个新的公共存储库。 提供一个名称并将您的可见性设置为公开。 在这里,一切都会被保留为默认值。

 

托管

托管

 

记下您的 GitHub URL,它必须是公开的,SubQuery 才能访问它。

 

托管

 

第 3 步:推送到 GitHub

 

回到您的项目目录,将其初始化为 git 目录。 否则,您可能会收到"fatal: not a git repository (or any of the parent directories): .git”

 

托管

 

然后使用以下命令添加远程存储库:

 

托管

 

这会将您的远程存储库设置为“https://github.com/seandotau/subqlHelloWorld.git”,并将其命名为“origin” — 这是 GitHub 中远程存储库的标准命名法。

 

接下来,我们使用以下命令将代码添加到我们的存储库中:

 

托管

 

push 命令的意思是“请将我的代码从我的主本地存储库推送到原始存储库”。 刷新 GitHub 会显示 GitHub 中的所有代码。

 

托管

 

现在您已将代码放入 GitHub,让我们看看如何在 SubQuery Projects 中托管它。

 

第 4 步:创建您的项目

 

浏览此网址 https://project.subquery.network 并使用您的 GitHub 帐户登录。

 

托管

 

然后新建一个项目

 

托管

 

并用适当的详细信息填写各个字段。

 

  • GitHub 帐户:如果您有多个 GitHub 帐户,请选择将在哪个帐户下创建此项目。 在 GitHub 组织帐户中创建的项目在该组织的成员之间共享。
  • 项目名称:在此处为您的项目命名。
  • 副标题:为您的项目提供副标题。
  • 描述:解释您的 SubQuery 项目的用途。
  • GitHub 存储库 URL:这必须是包含您的 SubQuery 项目的公共存储库的有效 GitHub URL。 schema.graphql 文件必须位于您目录的根目录中。
  • 隐藏项目:如果选中,这将在公共 SubQuery 浏览器中隐藏项目。 如果您想与社区共享您的SubQuery项目,请不要选择此项!

 

托管

 

当您单击创建时,您将被带到控制面板。

 

托管

 

控制面板包含许多有用的信息,例如它使用的网络、它运行的源代码的 GitHub 存储库 URL、它的创建时间和上次更新时间,尤其是部署的详细信息。

 

第 5 步:部署您的项目

 

现在您已经在 SubQuery Projects 中创建了您的项目,设置了显示行为后,下一步是部署您的项目使其可操作。 部署一个版本会触发新的 SubQuery 索引操作启动,并设置所需的查询服务以开始接受 GraphQL 请求。 您还可以在此处将新版本部署到现有项目。

 

您可以选择部署到各种环境,例如生产槽或暂存槽。 在这里,我们将部署到生产槽。 单击“部署”按钮会显示一个包含以下字段的屏幕:

 

托管

 

  • 新版本的 Commit Hash:从 GitHub 中选择您要部署的 SubQuery 项目代码库的正确交付
  • 索引器版本:这是您要在其上运行此SubQuery项目的SubQuery节点服务的版本。 请登录此网址参考 https://www.npmjs.com/package/@subql/node
  • 查询版本:这是您要在其上运行此 SubQuery 项目的 SubQuery 查询服务的版本。 请登录此网址参考 https://www.npmjs.com/package/@subql/query

 

因为我们只有一个交付,所以下拉菜单中只有一个选项。 我们还将使用最新版本的索引器和查询版本,因此我们将接受默认值,然后单击“部署更新”。

 

然后,您将看到您的部署处于“正在处理”状态。 在这里,您的代码正在部署到 SubQuery 的托管基础架构上。 服务器正在按需启动并准备为您提供服务,这将需要几分钟的时间。

 

托管

 

部署现在正在运行。

 

托管

 

第 6 步:测试您的项目

 

要测试您的项目,请单击省略号并选择“在SubQuery浏览器上查看”。

 

托管

 

这将带您进入熟悉的“Playground”,您可以在其中单击播放按钮并查看查询结果。

 

托管

 

第 7 步:奖励步骤

 

对于我们中的敏锐者,您会记得在学习目标中,最后一点是运行一个简单的 GET 查询。 为此,我们需要获取部署详细信息中显示的“查询端点”。

 

托管

 

然后,您可以使用您喜欢的客户端(例如 Postman,https://www.postman.com/或Mockoon,https://mockoon.com/)向此端点发送 GET 请求或 Mockoon, 或通过终端中的 cURL向此端点发送 GET 请求。 为简单起见,cURL 将在下面显示。

 

要运行的 curl 命令是:

 


curl https://api.subquery.network/sq/seandotau/subqueryhelloworld -d "query=query { starterEntities (first: 5, orderBy: CREATED_AT_DESC) { totalCount nodes { id field1 field2 field3 } } }"

 

给出以下结果:

 


“{"data":{"starterEntities":{"totalCount":23098,"nodes":[{"id":"0x29dfe9c8e5a1d51178565c2c23f65d249b548fe75a9b6d74cebab777b961b1a6","field1":23098,"field2":null,"field3":null},{"id":"0xab7d3e0316a01cdaf9eda420cf4021dd53bb604c29c5136fef17088c8d9233fb","field1":23097,"field2":null,"field3":null},{"id":"0x534e89bbae0857f2f07b0dea8dc42a933f9eb2d95f7464bf361d766a644d17e3","field1":23096,"field2":null,"field3":null},{"id":"0xd0af03ab2000a58b40abfb96a61d312a494069de3670b509454bd06157357db6","field1":23095,"field2":null,"field3":null},{"id":"0xc9f5a92f4684eb039e11dffa4b8b22c428272b2aa09aff291169f71c1ba0b0f7","field1":23094,"field2":null,"field3":null}]}}}

 

可读性在这里不是问题,因为您可能会有一些前端代码来使用和解析这个 JSON 响应。

 

概括

 

在这个 SubQuery 托管的快速入门中,我们展示了获取 Subql 项目并将其部署到 SubQuery 项目是多么的快速和容易。这将为您提供所有基础设施。 并且有一个用于运行各种查询的内置playground,以及一个供您的代码集成的 API 端点。


声明:本文为入驻“MarsBit 专栏”作者作品,不代表MarsBit官方立场。
转载请联系网页底部:内容合作栏目,邮件进行授权。授权后转载时请注明出处、作者和本文链接。未经许可擅自转载本站文章,将追究相关法律责任,侵权必究。
提示:投资有风险,入市须谨慎,本资讯不作为投资理财建议。
免责声明:本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况,及遵守所在国家和地区的相关法律法规。