Exemplos CLI

Esta prática demonstra como brincar com a API de conteúdo em um terminal. Usaremos a instância da Decentraland Foundation em peer.decentraland.org, e tudo o que você precisa é o curl ferramenta de linha de comando.

circle-info

Você pode usar httpiearrow-up-right ou formatar respostas com jqarrow-up-right para obter JSONs mais legíveis a cada solicitação. Neste guia, mostraremos documentos formatados para maior clareza.

Isto é o que faremos:

  1. Consultar o status do servidor de conteúdo.

  2. Localize e baixe um snapshotarrow-up-right com uma lista de entidades.

  3. Obtenha o manifesto de uma entidade.

  4. Baixe um dos arquivos da entidade.

Vamos começar consultando o status do servidor usando /about:

curl "https://peer.decentraland.org/about"
{
  "healthy": true,
  "content": {
    "healthy": true,
    "version": "6.5.0",
  },
  // ... mais informações do servidor (feature flags, versões, caminhos, etc.)
}

Parece que o servidor está ativo e funcionando normalmente ("healthy": true), e está nos dando informações sobre a versão que implementa para cada conjunto de recursos, além de algumas opções de configuração da instância.

Estamos interessados em baixar algum conteúdo, então vamos explorar os snapshotsarrow-up-right para obter alguns identificadores via /content/snapshots.

Cada item no array descreve um snapshotarrow-up-right. Vamos pegar um hash e baixar o arquivo do /content/contents endpoint.

circle-info

Você pode experimentar snapshots maiores, como no exemplo avançado em pythonarrow-up-right. Para testar isso interativamente, provavelmente você vai querer um dos menores.

Podemos verificar que baixamos o arquivo correto em um formato que conhecemos, olhando a primeira linha:

Ótimo! Agora temos um resumo local de todas as entidades capturadas nesse snapshot. Vamos pegar a primeira listada (a segunda linha do arquivo), um perfil:

circle-info

Como snapshots expiram e entidades são substituídas, os identificadores neste artigo não funcionarão. Acompanhe no seu terminal para obter IDs de arquivos reais e ativos.

Esta é uma informação que poderíamos salvar. Usaremos o entityId para baixar o manifesto JSON da entidade, mas persistir os pointerarrow-up-right listados é uma boa ideia se quisermos localizar esta entidade e quaisquer versões atualizadas no futuro.

Também temos o auth_chainarrow-up-right usado para assinar esta entidade, e poderíamos validar as assinaturas listadas para verificar a autenticidade de quaisquer arquivos relacionados que baixarmos.

Vamos obter o manifesto da entidade. Lembre-se, o entityId é o file identifierarrow-up-right de que precisamos, e podemos usar o /content/contents endpoint novamente:

Esta perfil entidade tem todas as informações que os World Explorers usam para renderizar e animar um jogador. Se estivermos interessados em obter um dos arquivos empacotados, podemos continuar a usar o /content/contents endpoint.

Se olharmos o campo content , podemos ver o hash do arquivo internamente chamado body.png. Vamos pegá-lo:

Podemos abrir este png arquivo em um visualizador de imagens ou navegador web e conferir o trabalho do autor. Legal!

Atualizado