Vue d'ensemble de l'API Notebook

Les notebooks sont des conteneurs pour des blocs d'analyse qui définissent les workflows de process mining dans le cadre des enquêtes. Utilisez l'API Notebook pour créer, gérer et exécuter des workflows d'analyse de manière programmatique.

Concepts clés

Qu'est-ce qu'un Notebook ?

Les notebooks contiennent des séquences ordonnées de blocs d'analyse :

  • Filtres : Restreindre les données à des cas ou événements spécifiques
  • Calculatrices : Calculer des mesures, durées et valeurs dérivées
  • Insights : Générer des visualisations et analyses statistiques
  • Tableaux de bord : Créer des rapports partageables

Les blocs sont exécutés dans l'ordre, chaque bloc recevant les données de son bloc parent.

Types de Notebook

Type Valeur Description
Standard 0 Notebook d'analyse classique
Template 1 Notebook basé sur un modèle
BaseKnowledge 2 Notebook de connaissance fondamentale

Comportement de chargement automatique

Les opérations CRUD sur les notebooks chargent automatiquement le projet dans le cache partagé. Vous n'avez pas besoin d'appeler explicitement /project/{id}/load avant de créer, mettre à jour ou supprimer des notebooks.

# Appelez simplement l'opération directement - le projet se charge automatiquement
response = requests.post(
    f"{BASE_URL}/api/{TENANT_ID}/{PROJECT_ID}/notebook/investigation/{investigation_id}",
    json={"name": "New Notebook"},
    headers=headers
)

Verrou optimiste

Les opérations de mise à jour prennent en charge la détection optionnelle de conflits via DateModified :

# Inclure DateModified pour détecter les modifications concurrentes
response = requests.put(
    f"{BASE_URL}/api/{TENANT_ID}/{PROJECT_ID}/notebook/{notebook_id}",
    json={
        "name": "Updated Name",
        "dateModified": "2024-01-15T10:30:00Z"  # Depuis votre dernier GET
    },
    headers=headers
)

# Si un autre utilisateur a modifié le notebook, retourne 409 Conflit

Points de terminaison de l'API

CRUD Notebook

Méthode Endpoint Description
GET /api/{tenantId}/{projectId}/notebook/investigation/{investigationId} Lister les notebooks dans une enquête
POST /api/{tenantId}/{projectId}/notebook/investigation/{investigationId} Créer un notebook
POST /api/{tenantId}/{projectId}/notebook/investigation/{investigationId}/from-template Créer à partir d'un modèle
GET /api/{tenantId}/{projectId}/notebook/{notebookId} Obtenir les détails d'un notebook
PUT /api/{tenantId}/{projectId}/notebook/{notebookId} Mettre à jour un notebook
DELETE /api/{tenantId}/{projectId}/notebook/{notebookId} Supprimer un notebook
POST /api/{tenantId}/{projectId}/notebook/{notebookId}/copy Copier un notebook

Opérations sur les blocs

Méthode Endpoint Description
GET /api/{tenantId}/{projectId}/notebook/{notebookId}/blocks Lister les blocs
POST /api/{tenantId}/{projectId}/notebook/{notebookId}/blocks Créer un bloc
GET /api/{tenantId}/{projectId}/notebook/{notebookId}/blocks/order Obtenir l'ordre des blocs
PUT /api/{tenantId}/{projectId}/notebook/{notebookId}/blocks/order Réordonner les blocs

Utilitaires

Méthode Endpoint Description
GET /api/{tenantId}/{projectId}/notebook/{notebookId}/url Générer une URL partageable
GET /api/{tenantId}/{projectId}/notebook/ping Test de connectivité authentifié
GET /api/{tenantId}/{projectId}/notebook/unauthorized-ping Test de connectivité public

Démarrage rapide

Lister les notebooks dans une enquête

curl -X GET "https://your-mindzie-instance.com/api/{tenantId}/{projectId}/notebook/investigation/{investigationId}" \
  -H "Authorization: Bearer YOUR_API_KEY"

Créer un notebook

curl -X POST "https://your-mindzie-instance.com/api/{tenantId}/{projectId}/notebook/investigation/{investigationId}" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name": "My Analysis", "description": "Process analysis workflow"}'

Créer à partir d’un modèle

curl -X POST "https://your-mindzie-instance.com/api/{tenantId}/{projectId}/notebook/investigation/{investigationId}/from-template" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"templateId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee", "name": "My Analysis"}'

Structure de la réponse

Réponse Notebook

{
  "notebookId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
  "investigationId": "11111111-2222-3333-4444-555555555555",
  "name": "Main Analysis",
  "description": "Primary process analysis workflow",
  "dateCreated": "2024-01-15T10:30:00Z",
  "dateModified": "2024-01-20T14:45:00Z",
  "createdBy": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "modifiedBy": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "notebookType": 0,
  "notebookOrder": 1.0,
  "lastExecutionDuration": 2.5,
  "blockCount": 12
}

Champs de la réponse

Champ Type Description
notebookId GUID Identifiant unique du notebook
investigationId GUID ID de l'enquête parente
name chaîne Nom du notebook
description chaîne Description du notebook
dateCreated datetime Horodatage de création
dateModified datetime Horodatage de dernière modification
createdBy GUID ID utilisateur du créateur
modifiedBy GUID ID utilisateur du dernier modificateur
notebookType entier Type (0=Standard, 1=Template, 2=BaseKnowledge)
notebookOrder décimal Ordre d'affichage dans l'enquête
lastExecutionDuration double Durée de la dernière exécution en secondes
blockCount entier Nombre de blocs dans le notebook

Et ensuite ?