Dashboardbeheer
Dashboards weergeven en opvragen
Toegang tot dashboards die visualisatiepanelen bevatten voor procesmininginzichten, KPI's en analyses. Dashboards zijn containers voor het georganiseerd en deelbaar weergeven van uw analytische resultaten.
Connectiviteitstesten
Onbevoegde Ping
GET /api/{tenantId}/{projectId}/dashboard/unauthorized-ping
Testendpoint dat geen authenticatie vereist. Gebruik dit om te verifiëren of de Dashboard API toegankelijk is.
Respons
Ping Successful
Geauthenticeerde Ping
GET /api/{tenantId}/{projectId}/dashboard/ping
Geauthenticeerde ping-endpoint om de API-toegang voor een specifieke tenant en project te controleren.
Respons (200 OK)
Ping Successful (tenant id: {tenantId})
Respons (401 Unauthorized)
{error message describing authorization failure}
Alle dashboards weergeven
GET /api/{tenantId}/{projectId}/dashboard
Haalt een gepagineerde lijst op van alle dashboards binnen het gespecificeerde project. Elk dashboard bevat metadata, het aantal panelen en een deelbare URL.
Padparameters
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
tenantId |
GUID | Ja | De tenant-identificatie |
projectId |
GUID | Ja | De projectidentificatie |
Queryparameters
| Parameter | Type | Standaard | Beschrijving |
|---|---|---|---|
page |
integer | 1 | Paginanummer voor paginering |
pageSize |
integer | 50 | Aantal items per pagina (maximaal aanbevolen: 100) |
Respons (200 OK)
{
"dashboards": [
{
"dashboardId": "880e8400-e29b-41d4-a716-446655440000",
"projectId": "660e8400-e29b-41d4-a716-446655440000",
"name": "Process Overview Dashboard",
"description": "Main dashboard showing key process metrics",
"panelCount": 8,
"url": "https://your-instance.com/dashboard/880e8400-e29b-41d4-a716-446655440000",
"dateCreated": "2024-01-15T10:30:00Z",
"dateModified": "2024-01-20T14:45:00Z",
"createdBy": "user@example.com",
"modifiedBy": "user@example.com"
}
],
"totalCount": 25,
"page": 1,
"pageSize": 50
}
Responsvelden
| Veld | Type | Beschrijving |
|---|---|---|
dashboards |
array | Lijst van dashboardobjecten |
totalCount |
integer | Totaal aantal dashboards |
page |
integer | Huidig paginanummer |
pageSize |
integer | Items per pagina |
Dashboardobjectvelden
| Veld | Type | Beschrijving |
|---|---|---|
dashboardId |
GUID | Unieke identificatie voor het dashboard |
projectId |
GUID | Project waartoe dit dashboard behoort |
name |
string | Weergavenaam van het dashboard |
description |
string | Beschrijving van het dashboard |
panelCount |
integer | Aantal panelen in het dashboard |
url |
string | Deelbare URL naar het dashboard |
dateCreated |
datetime | Wanneer het dashboard is aangemaakt |
dateModified |
datetime | Wanneer het dashboard laatst is aangepast |
createdBy |
string | Gebruiker die het dashboard heeft aangemaakt |
modifiedBy |
string | Gebruiker die het dashboard als laatste heeft aangepast |
Dashboarddetails opvragen
GET /api/{tenantId}/{projectId}/dashboard/{dashboardId}
Haalt uitgebreide informatie op over een specifiek dashboard, inclusief metadata, panelenaantal en deelbare URL.
Padparameters
| Parameter | Type | Verplicht | Beschrijving |
|---|---|---|---|
tenantId |
GUID | Ja | De tenant-identificatie |
projectId |
GUID | Ja | De projectidentificatie |
dashboardId |
GUID | Ja | De dashboard-identificatie |
Respons (200 OK)
{
"dashboardId": "880e8400-e29b-41d4-a716-446655440000",
"projectId": "660e8400-e29b-41d4-a716-446655440000",
"name": "Process Overview Dashboard",
"description": "Main dashboard showing key process metrics and performance indicators",
"panelCount": 8,
"url": "https://your-instance.com/dashboard/880e8400-e29b-41d4-a716-446655440000",
"dateCreated": "2024-01-15T10:30:00Z",
"dateModified": "2024-01-20T14:45:00Z",
"createdBy": "user@example.com",
"modifiedBy": "user@example.com"
}
Foutresponsen
Niet gevonden (404):
{
"Error": "Dashboard not found",
"DashboardId": "880e8400-e29b-41d4-a716-446655440000"
}
Dashboards aanmaken
Het aanmaken van dashboards wordt beheerd via de mindzieStudio UI omdat dit context van onderzoek en notitieboekrelaties vereist. Zie Dashboard Overview voor details.
Voorbeelden van implementatie
cURL
# Test connectiviteit (geen authenticatie)
curl -X GET "https://your-mindzie-instance.com/api/12345678-1234-1234-1234-123456789012/87654321-4321-4321-4321-210987654321/dashboard/unauthorized-ping"
# Test connectiviteit (geauthenticeerd)
curl -X GET "https://your-mindzie-instance.com/api/12345678-1234-1234-1234-123456789012/87654321-4321-4321-4321-210987654321/dashboard/ping" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
# Alle dashboards ophalen
curl -X GET "https://your-mindzie-instance.com/api/12345678-1234-1234-1234-123456789012/87654321-4321-4321-4321-210987654321/dashboard?page=1&pageSize=50" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
# Specifiek dashboard opvragen
curl -X GET "https://your-mindzie-instance.com/api/12345678-1234-1234-1234-123456789012/87654321-4321-4321-4321-210987654321/dashboard/880e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
JavaScript/Node.js
const TENANT_ID = '12345678-1234-1234-1234-123456789012';
const PROJECT_ID = '87654321-4321-4321-4321-210987654321';
const BASE_URL = 'https://your-mindzie-instance.com';
class DashboardManager {
constructor(token) {
this.headers = {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
};
}
async getAllDashboards(page = 1, pageSize = 50) {
const url = `${BASE_URL}/api/${TENANT_ID}/${PROJECT_ID}/dashboard?page=${page}&pageSize=${pageSize}`;
const response = await fetch(url, { headers: this.headers });
return await response.json();
}
async getDashboard(dashboardId) {
const url = `${BASE_URL}/api/${TENANT_ID}/${PROJECT_ID}/dashboard/${dashboardId}`;
const response = await fetch(url, { headers: this.headers });
if (response.ok) {
return await response.json();
} else if (response.status === 404) {
throw new Error('Dashboard not found');
} else {
throw new Error(`Failed to get dashboard: ${response.status}`);
}
}
async listAllDashboards() {
const allDashboards = [];
let page = 1;
while (true) {
const result = await this.getAllDashboards(page);
allDashboards.push(...result.dashboards);
if (allDashboards.length >= result.totalCount) {
break;
}
page++;
}
return allDashboards;
}
}
// Gebruik
const manager = new DashboardManager('your-auth-token');
// Alle dashboards ophalen
const result = await manager.getAllDashboards();
console.log(`Found ${result.totalCount} dashboards`);
result.dashboards.forEach(d => {
console.log(`- ${d.name}: ${d.panelCount} panels`);
console.log(` URL: ${d.url}`);
});
Python
import requests
TENANT_ID = '12345678-1234-1234-1234-123456789012'
PROJECT_ID = '87654321-4321-4321-4321-210987654321'
BASE_URL = 'https://your-mindzie-instance.com'
class DashboardManager:
def __init__(self, token):
self.headers = {
'Authorization': f'Bearer {token}',
'Content-Type': 'application/json'
}
def get_all_dashboards(self, page=1, page_size=50):
"""Haal een gepagineerde lijst van dashboards op."""
url = f'{BASE_URL}/api/{TENANT_ID}/{PROJECT_ID}/dashboard'
params = {'page': page, 'pageSize': page_size}
response = requests.get(url, headers=self.headers, params=params)
return response.json()
def get_dashboard(self, dashboard_id):
"""Haal details van een dashboard op."""
url = f'{BASE_URL}/api/{TENANT_ID}/{PROJECT_ID}/dashboard/{dashboard_id}'
response = requests.get(url, headers=self.headers)
if response.ok:
return response.json()
elif response.status_code == 404:
raise Exception('Dashboard not found')
else:
raise Exception(f'Failed to get dashboard: {response.status_code}')
def list_all_dashboards(self):
"""Haal alle dashboards op (met paginering)."""
all_dashboards = []
page = 1
while True:
result = self.get_all_dashboards(page=page)
all_dashboards.extend(result['dashboards'])
if len(all_dashboards) >= result['totalCount']:
break
page += 1
return all_dashboards
# Gebruik
manager = DashboardManager('your-auth-token')
# Alle dashboards ophalen
dashboards = manager.get_all_dashboards()
print(f"Totaal dashboards: {dashboards['totalCount']}")
for dashboard in dashboards['dashboards']:
print(f"\nDashboard: {dashboard['name']}")
print(f" Panels: {dashboard['panelCount']}")
print(f" URL: {dashboard['url']}")
C#
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Text.Json;
using System.Threading.Tasks;
public class DashboardListReturn
{
public List<DashboardReturn> Dashboards { get; set; }
public int TotalCount { get; set; }
public int Page { get; set; }
public int PageSize { get; set; }
}
public class DashboardReturn
{
public Guid DashboardId { get; set; }
public Guid ProjectId { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public int PanelCount { get; set; }
public string Url { get; set; }
public DateTime DateCreated { get; set; }
public DateTime DateModified { get; set; }
public string CreatedBy { get; set; }
public string ModifiedBy { get; set; }
}
public class DashboardApiClient
{
private readonly HttpClient _httpClient;
private readonly string _baseUrl;
private readonly Guid _tenantId;
private readonly Guid _projectId;
public DashboardApiClient(string baseUrl, Guid tenantId, Guid projectId, string accessToken)
{
_baseUrl = baseUrl;
_tenantId = tenantId;
_projectId = projectId;
_httpClient = new HttpClient();
_httpClient.DefaultRequestHeaders.Authorization =
new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", accessToken);
}
public async Task<DashboardListReturn> GetAllDashboardsAsync(int page = 1, int pageSize = 50)
{
var url = $"{_baseUrl}/api/{_tenantId}/{_projectId}/dashboard?page={page}&pageSize={pageSize}";
var response = await _httpClient.GetAsync(url);
if (response.IsSuccessStatusCode)
{
var json = await response.Content.ReadAsStringAsync();
return JsonSerializer.Deserialize<DashboardListReturn>(json,
new JsonSerializerOptions { PropertyNameCaseInsensitive = true });
}
throw new Exception($"Failed to get dashboards: {response.StatusCode}");
}
public async Task<DashboardReturn> GetDashboardAsync(Guid dashboardId)
{
var url = $"{_baseUrl}/api/{_tenantId}/{_projectId}/dashboard/{dashboardId}";
var response = await _httpClient.GetAsync(url);
if (response.IsSuccessStatusCode)
{
var json = await response.Content.ReadAsStringAsync();
return JsonSerializer.Deserialize<DashboardReturn>(json,
new JsonSerializerOptions { PropertyNameCaseInsensitive = true });
}
else if (response.StatusCode == System.Net.HttpStatusCode.NotFound)
{
throw new Exception($"Dashboard {dashboardId} not found");
}
throw new Exception($"Failed to get dashboard: {response.StatusCode}");
}
}