Tutorials & Examples
Tutorials & Examples
В инструкции быстрого старта, мы очень быстро разобрали пример, чтобы показать Вам, что такое SubQuery и как он работает. В данной статье, мы более подробно рассмотрим рабочий процесс создания вашего проекта и ключевых файлов, с которыми вы будете работать.
Базовый рабочий процесс
Некоторые из следующих примеров предполагают, что вы успешно запустили стартовый пакет из в раздела Быстрый старт. На основе этого стартового пакета мы пройдем через стандартный процесс настройки и реализации вашего проекта SubQuery.
- Инициализируйте ваш проект используя
subql init PROJECT_NAME
. - Обновите файл манифеста (
проект. aml
), чтобы включить информацию о вашем блокчейне, и сущности, которые вы собираетесь сопоставить - см. Файл манифеста - Создайте GraphQL сущности в вашей схеме (
schema.raphql
), которые определяют форму ваших данных, которые вы будете извлекать и использовать для запроса - см. GraphQL Schema - Добавьте все функции сопоставления (например,
mappingHandlers.ts
), которые вы хотите использовать для преобразования данных цепи в GraphQL сущности, которые вы определили ранее - см. Mapping - Сгенерируйте, постройте, и опубликуйте ваш код в SubQuery Projects (или запустите на вашем локальном узле) - см. Запуск и запрос вашего стартового проекта в нашей инструкции быстрого старта.
Структура каталогов
На следующей карте представлен обзор структуры каталогов проекта SubQuery при выполнении команды init
.
- project-name
L package.json
L проект. aml
L README.md
L schema.graphql
L tsconfig. son
L docker-compose.yml
L src
L index. s
L сопоставления
L mappingHandlers.ts
L .gitignore
Пример:
Генерирование кода
Каждый раз, когда вы меняете сущности GraphQL, вы должны регенерировать типы каталогов следующей командой.
yarn codegen
Это команда создаст новый каталог (или обновит существующий) src/types
, который содержит сгенерированные классы сущностей для каждого типа, который вы ранее задали в schema.graphql
. Эти классы обеспечивают безопасную загрузку сущностей, доступ к чтению и записи на поле сущности - подробнее об этом процессе можно прочитать на GraphQL-схеме.
Сборка
Для того, чтобы запустить проект SubQuery на локальном узле SubQuery Node, вам нужно сначала собрать свою работу.
Запустите команду сборки из корневого каталога проекта.
::: code-tabs @tab:active yarn shell yarn build
Альтернативные варианты сборки
Мы поддерживаем дополнительные параметры сборки для проектов SubQery с использованием subql build
.
При этом вы можете определить дополнительные точки входа для сборки, используя поле экспорта в package.json.
"name": "project-name",
"version": "1.0.0",
...
"exports": {
"entry_one": "./src/entry_one.ts",
"entry_renamed": "./src/entry_two.ts"
},
Затем, после запуска subql build
, создастся папка dist со следующей структурой:
- project-name
L dist
L entry_one.js
L entry_renamed.js
L index.js
Обратите внимание, что index.ts
создастся независимо от того, указан он в поле экспорта или нет.
Для получения дополнительной информации об использовании этой команды, включая флаги, см. ссылку на cli.
Логгирование
Метод console.log
больше не поддерживается. Вместо этого в типы был внедрен модуль logger
, что означает, что мы можем поддерживать логгер, который может принимать различные уровни ведения журнала.
logger.info("Сообщение информационного уровня");
logger.debug("Сообщение уровня дебаггера");
logger.warn("Сообщение уровня предупреждения");
Чтобы использовать logger.info
или logger.warn
, просто поместите строку в mapping файл.
Для использования logger.debug
требуется дополнительный флаг. Добавьте --log-level=debug
в свою командную строку.
Если вы используете контейнер Docker, добавьте эту строку в файл docker-compose.yaml
.
Теперь вы должны увидеть новый журнал на экране терминала.