Actiebeheer
Volledige CRUD-bewerkingen voor het beheren van acties in uw mindzieStudio-project. Acties zijn workflowcomponenten die kunnen worden uitgevoerd om geautomatiseerde taken uit te voeren.
API-eindpunten
| Methode | Eindpunt | Beschrijving |
|---|---|---|
| GET | /api/{tenantId}/{projectId}/action |
Toon alle acties |
| GET | /api/{tenantId}/{projectId}/action/{actionId} |
Toon details van een actie |
| POST | /api/{tenantId}/{projectId}/action |
Maak actie aan |
| PUT | /api/{tenantId}/{projectId}/action/{actionId} |
Werk actie bij |
| DELETE | /api/{tenantId}/{projectId}/action/{actionId} |
Verwijder actie |
| POST | /api/{tenantId}/{projectId}/action/{actionId}/enable |
Schakel actie in |
| POST | /api/{tenantId}/{projectId}/action/{actionId}/disable |
Schakel actie uit |
Toon alle acties
GET /api/{tenantId}/{projectId}/action
Haal alle geconfigureerde acties voor een project op.
Padparameters
| Parameter | Type | Vereist | Beschrijving |
|---|---|---|---|
tenantId |
GUID | Ja | Uw tenant-identificatie |
projectId |
GUID | Ja | Uw projectidentificatie |
Respons (200 OK)
{
"actions": [
{
"actionId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
"projectId": "87654321-4321-4321-4321-210987654321",
"name": "Daily Data Refresh",
"description": "Ververs dagelijks gegevens uit bronsystemen",
"isEnabled": true,
"maxRunTime": 3600,
"actionStatus": "Idle",
"nextRunTime": "2024-01-16T06:00:00Z",
"lastRunTime": "2024-01-15T06:00:00Z",
"lastRunResult": "Success",
"dateCreated": "2024-01-01T10:00:00Z",
"dateModified": "2024-01-15T14:30:00Z",
"createdBy": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"modifiedBy": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"triggers": [...],
"steps": [...]
}
],
"totalCount": 1
}
Toon actiedetails
GET /api/{tenantId}/{projectId}/action/{actionId}
Haal gedetailleerde informatie op over een specifieke actie.
Padparameters
| Parameter | Type | Vereist | Beschrijving |
|---|---|---|---|
tenantId |
GUID | Ja | Uw tenant-identificatie |
projectId |
GUID | Ja | Uw projectidentificatie |
actionId |
GUID | Ja | De op te halen actie |
Respons (200 OK)
{
"actionId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
"projectId": "87654321-4321-4321-4321-210987654321",
"name": "Daily Data Refresh",
"description": "Ververs dagelijks gegevens uit bronsystemen",
"isEnabled": true,
"maxRunTime": 3600,
"actionStatus": "Idle",
"nextRunTime": "2024-01-16T06:00:00Z",
"lastRunTime": "2024-01-15T06:00:00Z",
"lastRunResult": "Success",
"dateCreated": "2024-01-01T10:00:00Z",
"dateModified": "2024-01-15T14:30:00Z",
"createdBy": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"modifiedBy": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"triggers": [
{
"triggerId": "11111111-1111-1111-1111-111111111111",
"actionId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
"triggerType": "DailyScheduler",
"settings": "{}",
"frequency": 1,
"eventName": null,
"startDate": "2024-01-01",
"dateCreated": "2024-01-01T10:00:00Z"
}
],
"steps": [
{
"stepId": "22222222-2222-2222-2222-222222222222",
"actionId": "aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee",
"stepNumber": 1,
"stepType": "Python",
"description": "Voer data refresh-script uit",
"settings": "{\"script\": \"refresh_data.py\"}",
"dateCreated": "2024-01-01T10:00:00Z"
}
]
}
Responsvelden
| Veld | Type | Beschrijving |
|---|---|---|
actionId |
GUID | Unieke actie-identificatie |
projectId |
GUID | Project waartoe deze actie behoort |
name |
string | Weergavenaam |
description |
string | Beschrijving van de actie |
isEnabled |
boolean | Of de actie is ingeschakeld |
maxRunTime |
integer | Maximale uitvoeringstijd in seconden |
actionStatus |
string | Huidige status (Idle, Running, etc.) |
nextRunTime |
datetime | Volgende geplande uitvoering |
lastRunTime |
datetime | Laatste uitvoeringstijd |
lastRunResult |
string | Resultaat van laatste uitvoering |
triggers |
array | Triggerconfiguraties |
steps |
array | Actiestapdefinities |
Maak actie aan
POST /api/{tenantId}/{projectId}/action
Maak een nieuwe actie aan in het project.
Padparameters
| Parameter | Type | Vereist | Beschrijving |
|---|---|---|---|
tenantId |
GUID | Ja | Uw tenant-identificatie |
projectId |
GUID | Ja | Uw projectidentificatie |
Verzoekbody
{
"name": "Weekly Report",
"description": "Genereer wekelijkse analyse rapport",
"isEnabled": true,
"maxRunTime": 1800,
"steps": [
{
"stepNumber": 1,
"stepType": "Python",
"description": "Genereer rapport",
"settings": "{\"script\": \"generate_report.py\"}"
},
{
"stepNumber": 2,
"stepType": "Email",
"description": "Verzend rapport per e-mail",
"settings": "{\"recipients\": [\"team@company.com\"]}"
}
],
"triggers": [
{
"triggerType": "WeeklyScheduler",
"frequency": 1,
"startDate": "2024-01-08"
}
]
}
Velden in verzoek
| Veld | Type | Vereist | Beschrijving |
|---|---|---|---|
name |
string | Ja | Actienaam (moet uniek zijn binnen het project) |
description |
string | Nee | Beschrijving van de actie |
isEnabled |
boolean | Nee | Of de actie is ingeschakeld (standaard: true) |
maxRunTime |
integer | Nee | Maximale uitvoeringstijd in seconden (standaard: 3600) |
steps |
array | Ja | Minimaal één stap is verplicht |
triggers |
array | Nee | Optionele triggerconfiguraties |
Stapobject
| Veld | Type | Vereist | Beschrijving |
|---|---|---|---|
stepNumber |
integer | Nee | Uitvoeringsvolgorde (automatisch toegekend als niet meegegeven) |
stepType |
string | Ja | Type: Python, Email, Webhook, etc. |
description |
string | Nee | Beschrijving van de stap |
settings |
string | Ja | JSON-configuratie voor de stap |
Triggerobject
| Veld | Type | Vereist | Beschrijving |
|---|---|---|---|
triggerType |
string | Ja | Type: HourlyScheduler, DailyScheduler, WeeklyScheduler, MonthlyScheduler, EventTrigger |
frequency |
integer | Nee | Frequentievermenigvuldiger |
startDate |
date | Nee | Wanneer de planning start |
eventName |
string | Nee | Eventnaam (voor EventTrigger) |
settings |
string | Nee | Extra triggerinstellingen |
Respons (201 Created)
Geeft de aangemaakte actie terug met toegewezen ID's.
Foutresponsen
Conflict (409) - Dubbele naam
{
"Error": "Er bestaat al een actie met deze naam in het project"
}
Werk actie bij
PUT /api/{tenantId}/{projectId}/action/{actionId}
Werk een bestaande actie bij.
Padparameters
| Parameter | Type | Vereist | Beschrijving |
|---|---|---|---|
tenantId |
GUID | Ja | Uw tenant-identificatie |
projectId |
GUID | Ja | Uw projectidentificatie |
actionId |
GUID | Ja | De actie die moet worden bijgewerkt |
Verzoekbody
{
"name": "Updated Weekly Report",
"description": "Bijgewerkte beschrijving",
"isEnabled": true,
"maxRunTime": 2400,
"steps": [
{
"stepId": "22222222-2222-2222-2222-222222222222",
"stepNumber": 1,
"stepType": "Python",
"description": "Bijgewerkte stap",
"settings": "{\"script\": \"updated_report.py\"}"
}
],
"triggers": [
{
"triggerId": "11111111-1111-1111-1111-111111111111",
"triggerType": "DailyScheduler",
"frequency": 1,
"startDate": "2024-02-01"
}
]
}
Alle velden zijn optioneel - alleen opgegeven velden worden bijgewerkt.
Respons (200 OK)
Geeft de bijgewerkte actie terug.
Verwijder actie
DELETE /api/{tenantId}/{projectId}/action/{actionId}
Verwijder een actie definitief.
Padparameters
| Parameter | Type | Vereist | Beschrijving |
|---|---|---|---|
tenantId |
GUID | Ja | Uw tenant-identificatie |
projectId |
GUID | Ja | Uw projectidentificatie |
actionId |
GUID | Ja | De te verwijderen actie |
Respons (204 No Content)
Lege respons bij succes.
Schakel actie in
POST /api/{tenantId}/{projectId}/action/{actionId}/enable
Schakel een uitgeschakelde actie in.
Respons (200 OK)
Geeft de bijgewerkte actie terug met isEnabled: true.
Schakel actie uit
POST /api/{tenantId}/{projectId}/action/{actionId}/disable
Schakel een actie uit.
Respons (200 OK)
Geeft de bijgewerkte actie terug met isEnabled: false.
Implementatievoorbeelden
cURL
# Toon alle acties
curl -X GET "https://your-mindzie-instance.com/api/{tenantId}/{projectId}/action" \
-H "Authorization: Bearer YOUR_API_KEY"
# Maak een actie aan
curl -X POST "https://your-mindzie-instance.com/api/{tenantId}/{projectId}/action" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Daily Report",
"description": "Genereer dagelijks rapport",
"isEnabled": true,
"steps": [
{
"stepNumber": 1,
"stepType": "Python",
"description": "Voer rapportscript uit",
"settings": "{\"script\": \"daily_report.py\"}"
}
],
"triggers": [
{
"triggerType": "DailyScheduler",
"frequency": 1,
"startDate": "2024-01-15"
}
]
}'
# Werk een actie bij
curl -X PUT "https://your-mindzie-instance.com/api/{tenantId}/{projectId}/action/{actionId}" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "Updated Daily Report"}'
# Verwijder een actie
curl -X DELETE "https://your-mindzie-instance.com/api/{tenantId}/{projectId}/action/{actionId}" \
-H "Authorization: Bearer YOUR_API_KEY"
# Schakel actie in/uit
curl -X POST "https://your-mindzie-instance.com/api/{tenantId}/{projectId}/action/{actionId}/enable" \
-H "Authorization: Bearer YOUR_API_KEY"
curl -X POST "https://your-mindzie-instance.com/api/{tenantId}/{projectId}/action/{actionId}/disable" \
-H "Authorization: Bearer YOUR_API_KEY"
Python
import requests
BASE_URL = 'https://your-mindzie-instance.com'
TENANT_ID = '12345678-1234-1234-1234-123456789012'
PROJECT_ID = '87654321-4321-4321-4321-210987654321'
class ActionManager:
def __init__(self, api_key):
self.headers = {
'Authorization': f'Bearer {api_key}',
'Content-Type': 'application/json'
}
def list_actions(self):
"""Toon alle acties."""
url = f'{BASE_URL}/api/{TENANT_ID}/{PROJECT_ID}/action'
response = requests.get(url, headers=self.headers)
response.raise_for_status()
return response.json()
def get_action(self, action_id):
"""Toon actiedetails."""
url = f'{BASE_URL}/api/{TENANT_ID}/{PROJECT_ID}/action/{action_id}'
response = requests.get(url, headers=self.headers)
response.raise_for_status()
return response.json()
def create_action(self, name, steps, description=None, triggers=None):
"""Maak een nieuwe actie aan."""
url = f'{BASE_URL}/api/{TENANT_ID}/{PROJECT_ID}/action'
data = {
'name': name,
'description': description,
'isEnabled': True,
'steps': steps,
'triggers': triggers or []
}
response = requests.post(url, json=data, headers=self.headers)
response.raise_for_status()
return response.json()
def update_action(self, action_id, **kwargs):
"""Werk een actie bij."""
url = f'{BASE_URL}/api/{TENANT_ID}/{PROJECT_ID}/action/{action_id}'
response = requests.put(url, json=kwargs, headers=self.headers)
response.raise_for_status()
return response.json()
def delete_action(self, action_id):
"""Verwijder een actie."""
url = f'{BASE_URL}/api/{TENANT_ID}/{PROJECT_ID}/action/{action_id}'
response = requests.delete(url, headers=self.headers)
response.raise_for_status()
def enable_action(self, action_id):
"""Schakel een actie in."""
url = f'{BASE_URL}/api/{TENANT_ID}/{PROJECT_ID}/action/{action_id}/enable'
response = requests.post(url, headers=self.headers)
response.raise_for_status()
return response.json()
def disable_action(self, action_id):
"""Schakel een actie uit."""
url = f'{BASE_URL}/api/{TENANT_ID}/{PROJECT_ID}/action/{action_id}/disable'
response = requests.post(url, headers=self.headers)
response.raise_for_status()
return response.json()
# Gebruik
manager = ActionManager('your-api-key')
# Maak een actie aan
action = manager.create_action(
name='Daily Report',
description='Genereer dagelijks analyserapport',
steps=[
{
'stepNumber': 1,
'stepType': 'Python',
'description': 'Genereer rapport',
'settings': '{"script": "daily_report.py"}'
}
],
triggers=[
{
'triggerType': 'DailyScheduler',
'frequency': 1,
'startDate': '2024-01-15'
}
]
)
print(f"Actie aangemaakt: {action['actionId']}")
# Schakel uit en daarna weer in
manager.disable_action(action['actionId'])
print("Actie uitgeschakeld")
manager.enable_action(action['actionId'])
print("Actie ingeschakeld")
# Werk de actie bij
updated = manager.update_action(action['actionId'], name='Updated Daily Report')
# Verwijder de actie
manager.delete_action(action['actionId'])
print("Actie verwijderd")
JavaScript/Node.js
const BASE_URL = 'https://your-mindzie-instance.com';
const TENANT_ID = '12345678-1234-1234-1234-123456789012';
const PROJECT_ID = '87654321-4321-4321-4321-210987654321';
class ActionManager {
constructor(apiKey) {
this.headers = {
'Authorization': `Bearer ${apiKey}`,
'Content-Type': 'application/json'
};
}
async listActions() {
const url = `${BASE_URL}/api/${TENANT_ID}/${PROJECT_ID}/action`;
const response = await fetch(url, { headers: this.headers });
if (!response.ok) throw new Error(`Mislukt: ${response.status}`);
return response.json();
}
async createAction(name, steps, description = null, triggers = []) {
const url = `${BASE_URL}/api/${TENANT_ID}/${PROJECT_ID}/action`;
const response = await fetch(url, {
method: 'POST',
headers: this.headers,
body: JSON.stringify({ name, description, isEnabled: true, steps, triggers })
});
if (!response.ok) throw new Error(`Mislukt: ${response.status}`);
return response.json();
}
async updateAction(actionId, updates) {
const url = `${BASE_URL}/api/${TENANT_ID}/${PROJECT_ID}/action/${actionId}`;
const response = await fetch(url, {
method: 'PUT',
headers: this.headers,
body: JSON.stringify(updates)
});
if (!response.ok) throw new Error(`Mislukt: ${response.status}`);
return response.json();
}
async deleteAction(actionId) {
const url = `${BASE_URL}/api/${TENANT_ID}/${PROJECT_ID}/action/${actionId}`;
const response = await fetch(url, {
method: 'DELETE',
headers: this.headers
});
if (!response.ok) throw new Error(`Mislukt: ${response.status}`);
}
async enableAction(actionId) {
const url = `${BASE_URL}/api/${TENANT_ID}/${PROJECT_ID}/action/${actionId}/enable`;
const response = await fetch(url, { method: 'POST', headers: this.headers });
if (!response.ok) throw new Error(`Mislukt: ${response.status}`);
return response.json();
}
async disableAction(actionId) {
const url = `${BASE_URL}/api/${TENANT_ID}/${PROJECT_ID}/action/${actionId}/disable`;
const response = await fetch(url, { method: 'POST', headers: this.headers });
if (!response.ok) throw new Error(`Mislukt: ${response.status}`);
return response.json();
}
}
// Gebruik
const manager = new ActionManager('your-api-key');
// Maak actie aan
const action = await manager.createAction(
'Daily Report',
[{ stepNumber: 1, stepType: 'Python', description: 'Voer script uit', settings: '{}' }],
'Genereer dagelijks rapport',
[{ triggerType: 'DailyScheduler', frequency: 1, startDate: '2024-01-15' }]
);
// Schakel in/uit
await manager.disableAction(action.actionId);
await manager.enableAction(action.actionId);
// Verwijder
await manager.deleteAction(action.actionId);
Beste praktijken
- Unieke namen: Actienamen moeten uniek zijn binnen een project
- Volgorde van stappen: Stappen worden uitgevoerd in volgorde van stepNumber
- In-/uitschakelen: Gebruik de in-/uitschakel-eindpunten in plaats van verwijderen en opnieuw aanmaken
- Triggers: Gebruik passende triggertypes voor uw planningsbehoeften
- MaxRunTime: Stel redelijke time-outs in om ongecontroleerde acties te voorkomen