SubQuery丨开发者快速入门指南
在本快速入门指南中,我们将创建一个简单的入门项目,您可以将其用作开发您自己的 SubQuery 项目的框架。
在本指南的最后,您将拥有一个在 SubQuery 节点上运行的可工作 的 SubQuery 项目,该节点具有一个可以从中查询数据的 GraphQL 端点。
如果您还没有准备好,我们建议您先熟悉 SubQuery 中使用的术语。
01
准备
本地开发环境
编译项目和定义类型需要打字稿。 SubQuery CLI 和生成的项目都有依赖项,需要现代版本的 Node。
SubQuery节点需要 Docker。
02
下载SubQuery CLI
使用 NPM 在终端上全局安装 SubQuery CLI:
请注意,我们不鼓励使用 Yarn global,因为它的依赖性管理很差,这可能会导致错误。
然后,您可以运行帮助以查看 CLI 提供的可用命令和用法。
03
初始化 Starter SubQuery 项目
在您要创建 SubQuery 项目的目录中,只需将 PROJECT_NAME 替换为您自己的项目名称并运行命令:
在初始化 SubQuery 项目时,您会被问到一些问题:
Git 存储库(可选):提供指向此 SubQuery 项目的,并将在其中托管的存储库的 Git URL(当托管在 SubQuery Explorer 中时)。
RPC 端点(必需):提供一个 wss URL给一个正在运行的 RPC 端点,该端点将默认用于此项目。 您可以快速访问不同 Polkadot 网络的公共端点,甚至可以使用 OnFinality,或仅使用默认的 Polkadot 端点创建您自己的私有专用节点。
作者(必填):在此处输入此 SubQuery 项目的所有者。
描述(可选):您可以提供关于您项目的简短段落,描述项目包含哪些数据以及用户可以使用它做什么。
版本(必填):输入自定义版本号或使用默认版本 (1.0.0)。
许可证(必需):提供此项目的软件许可证或接受默认(Apache-2.0)。
初始化过程完成后,您应该会看到在目录中创建了一个包含您的项目名称的文件夹。 此目录的内容应与目录结构中列出的内容相同。
最后,在项目目录下,运行以下命令安装新项目的依赖项。
04
配置和构建入门项目
在您刚刚初始化的入门包中,我们为您的新项目提供了标准配置。 您将主要处理以下文件:
project.yaml 中的清单
schema.graphql 中的 GraphQL 架构
src/mappings/ 目录中的映射函数
有关如何编写自己的 SubQuery 项目的更多信息,请查看我们在创建项目下的文档。
05
GraphQL 模型生成
为了索引您的 SubQuery 项目,您必须首先生成您在 GraphQL 架构文件 (schema.graphql) 中定义的所需 GraphQL 模型。 在项目目录的根目录中运行此命令。
您将在 /src/types/models 目录中找到生成的模型。
06
构建项目
为了在本地托管的 SubQuery 节点上运行您的 SubQuery 项目,您需要构建您的工作。
从项目的根目录运行构建命令。
07
运行和查询
你的启动项目
虽然你可以快速发布你的新项目到 SubQuery 项目,并使用我们的资源管理器进行查询,但是在本地运行 SubQuery 节点的最简单方法是在 Docker 容器中,如果你还没有 Docker,你可以从 docker.com 安装它。
跳过这一点,将你的新项目发布到 SubQuery 项目中。
08
运行您的 SubQuery 项目
控制 SubQuery 节点运行方式的所有配置都在此 docker-compose.yml 文件中定义。 对于刚刚初始化的新项目,您无需在此处更改任何内容,但您可以在我们的“运行项目”部分阅读有关文件和设置的更多信息。
在项目目录下运行以下命令:
下载所需的包可能需要一些时间,但很快您就会看到一个正在运行的 SubQuery 节点。
09
查询您的项目
打开浏览器并前往 http://localhost:3000
您应该会看到 GraphQL playground 显示在资源管理器中,其模式是准备查询。 在 Playground 的右上角,您会找到一个 Docs 按钮,该按钮将打开文档绘图。 该文档是自动生成的,可帮助您找到可以查询的实体和方法。
对于新的 SubQuery 入门项目,您可以尝试以下查询以了解其工作原理或了解有关 GraphQL 查询语言的更多信息。
10
下一步
恭喜,您现在有一个本地运行的 SubQuery 项目,该项目接受 GraphQL API 对示例数据的请求。 在下一个指南中,我们将向您展示如何将您的新项目发布到 SubQuery Projects, 并使用我们的资源管理器查询。
将您的新项目发布到 SubQuery Projects。
Website:https://www.subquery.network/
Telegram:https://t.me/subquerynetwork
Twitter:https://twitter.com/subquerynetwork
Medium:https://subquery.medium.com/
Github:https://github.com/subquery/subql
Matrix:https://matrix.to/#/#subquery:matrix.org
Linkedin:https://www.linkedin.com/company/subquery
往期精彩