Tutorials & Examples

... 2022-8-10 Меньше 1 минуты

# Tutorials & Examples

В инструкции быстрого старта, мы очень быстро разобрали пример, чтобы показать Вам, что такое SubQuery и как он работает. В данной статье, мы более подробно рассмотрим рабочий процесс создания вашего проекта и ключевых файлов, с которыми вы будете работать.

# Базовый рабочий процесс

Некоторые из следующих примеров предполагают, что вы успешно запустили стартовый пакет из в раздела Быстрый старт. На основе этого стартового пакета мы пройдем через стандартный процесс настройки и реализации вашего проекта SubQuery.

  1. Инициализируйте ваш проект используя subql init PROJECT_NAME.
  2. Обновите файл манифеста (проект. aml), чтобы включить информацию о вашем блокчейне, и сущности, которые вы собираетесь сопоставить - см. Файл манифеста
  3. Создайте GraphQL сущности в вашей схеме (schema.raphql), которые определяют форму ваших данных, которые вы будете извлекать и использовать для запроса - см. GraphQL Schema
  4. Добавьте все функции сопоставления (например, mappingHandlers.ts), которые вы хотите использовать для преобразования данных цепи в GraphQL сущности, которые вы определили ранее - см. Mapping
  5. Сгенерируйте, постройте, и опубликуйте ваш код в 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
1
2
3
4
5
6
7
8
9
10
11
12

Пример:

Структура каталогов SubQuery

# Генерирование кода

Каждый раз, когда вы меняете сущности GraphQL, вы должны регенерировать типы каталогов следующей командой.

yarn codegen
1

Это команда создаст новый каталог (или обновит существующий) src/types, который содержит сгенерированные классы сущностей для каждого типа, который вы ранее задали в schema.graphql. Эти классы обеспечивают безопасную загрузку сущностей, доступ к чтению и записи на поле сущности - подробнее об этом процессе можно прочитать на GraphQL-схеме.

# Сборка

Для того, чтобы запустить проект SubQuery на локальном узле SubQuery Node, вам нужно сначала собрать свою работу.

Запустите команду сборки из корневого каталога проекта.

# Альтернативные варианты сборки

Мы поддерживаем дополнительные параметры сборки для проектов 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"
},
1
2
3
4
5
6
7

Затем, после запуска subql build, создастся папка dist со следующей структурой:

- project-name
  L dist
    L entry_one.js
    L entry_renamed.js
    L index.js
1
2
3
4
5

Обратите внимание, что index.ts создастся независимо от того, указан он в поле экспорта или нет.

Для получения дополнительной информации об использовании этой команды, включая флаги, см. ссылку на cli (opens new window).

# Логгирование

Метод console.log больше не поддерживается. Вместо этого в типы был внедрен модуль logger, что означает, что мы можем поддерживать логгер, который может принимать различные уровни ведения журнала.

logger.info("Сообщение информационного уровня");
logger.debug("Сообщение уровня дебаггера");
logger.warn("Сообщение уровня предупреждения");
1
2
3

Чтобы использовать logger.info или logger.warn, просто поместите строку в mapping файл.

logging.info

Для использования logger.debug требуется дополнительный флаг. Добавьте --log-level=debug в свою командную строку.

Если вы используете контейнер Docker, добавьте эту строку в файл docker-compose.yaml.

logging.debug

Теперь вы должны увидеть новый журнал на экране терминала.

logging.debug

Последнее обновление: August 10, 2022 00:49