Pular para o conteúdo
mini.casa
Desenvolvedores

Comece com um mundinho

Crie uma conexão e uma casa em rascunho, edite com segurança e publique, tudo com poucas requisições.

Este passo a passo usa a API REST com curl. Cada etapa funciona do mesmo jeito via MCP, porque os dois são gerados a partir de um único catálogo de operações e passam pelas mesmas verificações de permissão do aplicativo.

Crie uma conexão

Entre na sua conta, abra Desenvolvedores no painel (apenas proprietários e administradores do espaço) e escolha Nova conexão. Selecione API REST, mantenha as permissões de leitura padrão (workspaces:read, catalog:read, worlds:read) e, para este passo a passo, adicione worlds:write e worlds:publish. O token aparece uma única vez: guarde-o logo no seu cofre de segredos.

O cartão Referência da mesma página mostra a URL base da REST, o endpoint MCP e o contrato OpenAPI.

export BASE="https://<seu host>/api/v1"
export TOKEN="sw_rest_..."

Encontre seu espaço de trabalho

Um token pertence a exatamente um espaço de trabalho. Liste-o para obter o id e o seu papel:

curl -s -H "Authorization: Bearer $TOKEN" "$BASE/workspaces"
export WS="<data[0].id>"

Depois pergunte o que esse espaço consegue fazer agora. Cada capacidade informa se está implementada, simulada, bloqueada por falta de credenciais ou aguardando uma decisão:

curl -s -H "Authorization: Bearer $TOKEN" "$BASE/workspaces/$WS/capabilities"

Crie uma casa em rascunho

Escolha um design no catálogo (GET /catalog/templates) e crie um rascunho. Toda escrita precisa de uma Idempotency-Key de 16 a 128 caracteres; repetir a requisição com a mesma chave e o mesmo corpo devolve o resultado original em vez de uma segunda casa.

curl -s -X POST "$BASE/workspaces/$WS/worlds" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Idempotency-Key: $(openssl rand -hex 16)" \
  -H "Content-Type: application/json" \
  -d '{"handle":"minha-primeira-casa","template_id":"pizza",
       "profile":{"display_name":"Minha primeira casa","bio":"Olá pela API.","content_language":"pt-BR"}}'

Edite com segurança

Leia a casa primeiro. A resposta traz um cabeçalho ETag; envie-o de volta como If-Match com a sua alteração. Se alguém editou o rascunho nesse meio-tempo, você recebe 412 revision_conflict e nada muda.

curl -s -i -H "Authorization: Bearer $TOKEN" "$BASE/workspaces/$WS/worlds/$WORLD"

curl -s -X PATCH "$BASE/workspaces/$WS/worlds/$WORLD" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Idempotency-Key: $(openssl rand -hex 16)" \
  -H 'If-Match: W/"<etag>"' \
  -H "Content-Type: application/json" \
  -d '{"profile":{"bio":"Editado pela API."}}'

Publique e aguarde o trabalho

Publicar exige o draft_revision_id e o draft_digest exatos da última leitura, assim você publica o que conferiu. A resposta é 202 com um trabalho; a versão anterior continua no ar até a nova ser gerada com sucesso.

curl -s -X POST "$BASE/workspaces/$WS/worlds/$WORLD/publications" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Idempotency-Key: $(openssl rand -hex 16)" \
  -H "Content-Type: application/json" \
  -d '{"revision_id":"<draft_revision_id>","expected_digest":"<draft_digest>"}'

curl -s -H "Authorization: Bearer $TOKEN" "$BASE/workspaces/$WS/jobs/$JOB"

Não consulte mais rápido que next_poll_after_seconds. Um trabalho completed devolve a canonical_url da página publicada. Quando tiver mais do que alguns trabalhos, prefira um webhook a consultas repetidas.

Próximos passos