Ejemplos de CLI

Esta práctica demuestra cómo jugar con la API de contenido en un terminal. Usaremos la instancia de la Decentraland Foundation en peer.decentraland.org, y todo lo que necesitas es el curl herramienta de línea de comandos.

circle-info

Puedes usar httpiearrow-up-right o formatear respuestas con jqarrow-up-right para obtener JSONs más legibles con cada solicitud. En esta guía, mostraremos documentos formateados para mayor claridad.

Esto es lo que haremos:

  1. Consultar el estado del servidor de contenido.

  2. Localiza y descarga un snapshotarrow-up-right con una lista de entidades.

  3. Obtén el manifiesto de una entidad.

  4. Descarga uno de los archivos de la entidad.

Comencemos consultando el estado del servidor usando /about:

curl "https://peer.decentraland.org/about"
{
  "healthy": true,
  "content": {
    "healthy": true,
    "version": "6.5.0",
  },
  // ... más información del servidor (flags de características, versiones, rutas, etc.)
}

Parece que el servidor está activo y funcionando con normalidad ("healthy": true), y nos está dando información sobre la versión que implementa para cada conjunto de características, además de algunas opciones de configuración de la instancia.

Estamos interesados en descargar contenido, así que exploremos los snapshotsarrow-up-right para obtener algunos identificadores vía /content/snapshots.

Cada elemento en el arreglo describe un snapshotarrow-up-right. Tomemos un hash y descarguemos el archivo desde el /content/contents endpoint.

circle-info

Puedes experimentar con snapshots más grandes, como en el ejemplo avanzado en pythonarrow-up-right. Para probar esto de forma interactiva, probablemente quieras uno de los más pequeños.

Podemos comprobar que descargamos el archivo correcto en un formato que conocemos, mirando la primera línea:

¡Genial! Ahora tenemos un resumen local de todas las entidades que fueron capturadas en ese snapshot. Tomemos la primera listada (la segunda línea en el archivo), un perfil:

circle-info

Dado que los snapshots expiran y las entidades son reemplazadas, los identificadores en este artículo no funcionarán. Sigue los pasos en tu línea de comandos para obtener IDs de archivos reales y activos.

Esta es información que podríamos guardar. Usaremos el entityId para descargar el manifiesto JSON de la entidad, pero persistir los pointerarrow-up-right listados es una buena idea si queremos localizar esta entidad y cualquier versión actualizada en el futuro.

También tenemos la auth chainarrow-up-right usada para firmar esta entidad, y podríamos validar las firmas listadas para verificar la autenticidad de cualquier archivo relacionado que descarguemos.

Vamos a obtener el manifiesto de la entidad. Recuerda, el entityId es el file identifierarrow-up-right que necesitamos, y podemos usar el /content/contents endpoint de nuevo:

Esta perfil entidad tiene toda la información que World Explorers utiliza para renderizar y animar a un jugador. Si nos interesa obtener uno de los archivos empaquetados, podemos continuar usando el /content/contents endpoint.

Si miramos el content campo, podemos ver el hash del archivo internamente llamado body.png. Vamos a conseguirlo:

Podemos abrir este png archivo en un visor de imágenes o en un navegador web, y ver el trabajo del autor. ¡Buen trabajo!

Última actualización