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 ?
- Gestion des notebooks - Opérations CRUD complètes
- Opérations sur les blocs - Créer et gérer des blocs
- API Modèles - Créer des notebooks à partir de modèles
- API d'exécution - Exécuter des notebooks