Aller au contenu
mini.casa
Développeurs

Commencez par une casa

Créez une connexion et une casa brouillon, modifiez-la avec soin et publiez-la en quelques requêtes.

Ce guide utilise l’API REST avec curl. Chaque étape fonctionne de la même façon avec MCP : les deux proviennent du même catalogue d’opérations et passent les mêmes contrôles d’autorisation que l’application.

Créer une connexion

Connectez-vous, ouvrez Développeurs dans le tableau de bord (propriétaires et administrateurs de l’espace uniquement) et choisissez Nouvelle connexion. Sélectionnez API REST, gardez les choix de lecture seule (workspaces:read, catalog:read, worlds:read) et ajoutez, pour ce guide, worlds:write et worlds:publish. Le jeton n’apparaît qu’une fois : copiez-le tout de suite dans votre coffre de secrets.

La carte Référence de cette page donne l’URL de base REST, le point d’accès MCP et le contrat OpenAPI.

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

Trouver votre espace

Un jeton appartient à un seul espace. Listez-le pour obtenir son identifiant et votre rôle :

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

Demandez ensuite ce que cet espace peut faire maintenant. Chaque capacité indique si elle est implémentée, simulée, bloquée par des identifiants manquants ou en attente d’une décision :

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

Créer une casa brouillon

Choisissez un modèle du catalogue (GET /catalog/templates), puis créez un brouillon. Chaque écriture exige une Idempotency-Key de 16 à 128 caractères ; réessayer avec la même clé et le même corps renvoie le résultat initial sans créer une seconde 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"}}'

Modifier avec soin

Lisez d’abord la casa. La réponse comporte un en-tête ETag : renvoyez-le comme If-Match avec votre modification. Si quelqu’un a modifié le brouillon entre-temps, vous recevez 412 revision_conflict et rien ne change.

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."}}'

Publier et attendre la tâche

La publication prend les valeurs exactes draft_revision_id et draft_digest de la dernière lecture : vous publiez ce que vous avez vérifié. Elle répond 202 avec une tâche ; la version précédente reste en ligne jusqu’à la réussite de la nouvelle construction.

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’interrogez pas plus vite que next_poll_after_seconds. Une tâche completed renvoie la canonical_url de la page en ligne. Préférez un webhook à l’interrogation répétée dès que vous avez plus de quelques tâches.

Pour aller plus loin

  • Authentification et portées : les autorisations de chaque opération.
  • MCP : connecter un client agent aux mêmes opérations.
  • Référence API : conventions, erreurs et contrat OpenAPI.