Перейти к содержимому
mini.casa
Разработчикам

Начните с одной casa

Создайте подключение, сделайте черновик casa, безопасно отредактируйте и опубликуйте его всего несколькими запросами.

В этом руководстве используется REST API с curl. Каждый шаг работает так же через MCP, поскольку оба интерфейса создаются из одного каталога операций и проходят те же проверки разрешений, что и приложение.

Создайте подключение

Войдите, откройте Разработчикам в панели управления (только для владельцев и администраторов рабочего пространства) и выберите Новое подключение. Выберите REST API, сохраните разрешения по умолчанию только для чтения (workspaces:read, catalog:read, worlds:read) и для этого руководства добавьте worlds:write и worlds:publish. Токен показывается один раз, поэтому сразу скопируйте его в хранилище секретов.

Карточка Справочник на той же странице показывает базовый URL REST, конечную точку MCP и контракт OpenAPI.

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

Найдите рабочее пространство

Токен принадлежит ровно одному рабочему пространству. Запросите список, чтобы получить его идентификатор и свою роль:

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

Затем запросите, что это пространство может делать сейчас. Каждая возможность сообщает, реализована ли она, имитируется, заблокирована из-за отсутствующих учётных данных или ждёт решения:

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

Создайте черновик casa

Выберите дизайн из каталога (GET /catalog/templates), затем создайте черновик. Каждая запись требует Idempotency-Key длиной от 16 до 128 символов; повтор с тем же ключом и телом возвращает исходный результат вместо второй 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":"my-first-casa","template_id":"pizza",
       "profile":{"display_name":"My first casa","bio":"Hello from the API.","content_language":"en"}}'

Редактируйте безопасно

Сначала прочитайте casa. Ответ содержит заголовок ETag; передайте его обратно как If-Match вместе с изменением. Если кто-то успел отредактировать черновик, вы получите 412 revision_conflict, и ничего не изменится.

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":"Edited over the API."}}'

Опубликуйте и дождитесь задания

Публикация принимает точные draft_revision_id и draft_digest из последнего чтения, чтобы вы опубликовали проверенное. Она отвечает 202 с заданием; предыдущая версия остаётся доступной до успешной новой сборки.

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"

Опрашивайте не чаще, чем указано в next_poll_after_seconds. Задание completed возвращает canonical_url действующей страницы. Когда заданий становится больше нескольких, предпочтите вебхук опросу.

Куда двигаться дальше

  • Аутентификация и области доступа: разрешения для каждой операции.
  • MCP: подключение агента-клиента к тем же операциям.
  • Справочник API: соглашения, ошибки и контракт OpenAPI.