Saltar al contenido principal

Tutoriales y ejemplos

SubQuery TeamAlrededor de 2 min

Tutoriales y ejemplos

En la guía de inicio rápido encontraremos un ejemplo para darle una muestra de lo que es SubQuery y cómo funciona. Aquí veremos más de cerca el flujo de trabajo al crear tu proyecto y los archivos clave con los que trabajarás.

SubQuery Ejemplos

Algunos de los siguientes ejemplos asumirán que ha iniciado con éxito el paquete de inicio en la sección Inicio rápido. Desde ese paquete de inicio, pasaremos por el proceso estándar para personalizar e implementar su proyecto SubQuery.

  1. Inicia tu proyecto usando subql init PROJECT_NAME.
  2. Actualizar el archivo de manifiesto ( project.yaml) para incluir información sobre tu blockchain, y las entidades que vas a mapear - ver Archivo de manifiesto
  3. Crear entidades GraphQL en tu esquema (schema.graphql) que definen la forma de los datos que extraerás y persistirá para la consulta - vea Esquema GraphQL
  4. Agrega todas las funciones de mapeo (por ejemplo, mappingHandlers.ts) que desea invocar para transformar los datos de cadena a las entidades GraphQL que ha definido - vea Mapeo
  5. Generar, compilar, y publique su código en los Proyectos SubQuery (o ejecute en su propio nodo local) - vea Ejecutando y consultando su Proyecto de inicio en nuestra guía de inicio rápido.

Estructura del Directorio

El siguiente mapa proporciona una visión general de la estructura de directorio de un proyecto de SubQuery cuando se ejecuta el comando init.

- nombre-proyecto
  L package.json
  L project.yaml
  L README.md
  L schema.graphql
  L tsconfig.json
  L docker-compose.yml
  L src
    L index.ts
    L mappings
      L mappingHandlers.ts
  L .gitignore

Example

Estructura de directorios de SubQuery

Generación de Código

Cada vez que cambie sus entidades en GraphQL, debe regenerar su directorio de tipos con el siguiente comando.

yarn codegen

Esto creará un nuevo directorio (o actualizará el existente) src/types que contienen clases de entidad generadas para cada tipo que haya definido previamente en schema.graphql. Estas clases proporcionan la carga de entidad segura de tipos, acceso de lectura y escritura a los campos de la entidad - vea más sobre este proceso en el esquema GraphQL.

Compilar

Para ejecutar tu proyecto SubQuery en un nodo SubQuery alojado localmente, primero necesitas compilar tu trabajo.

Ejecuta el comando de compilación desde el directorio raíz del proyecto.

::: code-tabs @tab:active yarn shell yarn build @tab npm bash npm run-script build :::

Alternative build options

We support additional build options for subquery projects using subql build.

Con esto puede definir puntos de entrada adicionales para construir usando el campo exports en package.json.

"name": "project-name",
"version": "1.0.0",
...
"exports": {
  "entry_one": "./src/entry_one.ts",
  "entry_renamed": "./src/entry_two.ts"
},

Entonces ejecutando subql build generará una carpeta de dist con la siguiente estructura:

- project-name
  L dist
    L entry_one.js
    L entry_renamed.js
    L index.js

Tenga en cuenta que construirá index.ts si se especifica o no en el campo de exportación.

Para obtener más información sobre cómo usar esto incluyendo banderas, consulte referencia de cliopen in new window.

Registros

The console.log method is no longer supported. En su lugar, se ha inyectado un módulo logger en los tipos, lo que significa que podemos soportar un registrador que puede aceptar varios niveles de registro.

logger.info("Mensaje de nivel de información");
logger.debug("Mensaje de nivel de depuración");
logger.warn("Mensaje de nivel de advertencia");

Para usar logger.info o logger.warn, simplemente coloque la línea en su archivo de mapeo.

logging.info

Para usar logger.debug, se requiere una bandera adicional. Agrega --log-level=debug a tu línea de comando.

Si está ejecutando un contenedor docker, agregue esta línea a su archivo docker-compose.yaml.

logging.debug

Ahora debería ver el nuevo registro en la pantalla del terminal.

logging.debug