Gösterge Paneli Yönetimi
Gösterge Panellerini Listeleme ve Getirme
Süreç madenciliği içgörüleri, KPI'lar ve analizler için görselleştirme panelleri içeren gösterge panellerine erişin. Gösterge panelleri, analitik sonuçlarınızı düzenli, paylaşılabilir bir formatta görüntülemek için kullanılan konteynerlerdir.
Bağlantı Testi
Yetkisiz Ping
GET /api/{tenantId}/{projectId}/dashboard/unauthorized-ping
Kimlik doğrulama gerektirmeyen test endpoint'i. Dashboard API'nin erişilebilir olduğunu doğrulamak için kullanın.
Yanıt
Ping Successful
Kimlik Doğrulamalı Ping
GET /api/{tenantId}/{projectId}/dashboard/ping
Belirli bir tenant ve proje için API erişimini doğrulamak amacıyla kimlik doğrulamalı ping endpoint'i.
Yanıt (200 OK)
Ping Successful (tenant id: {tenantId})
Yanıt (401 Unauthorized)
{authorization başarısızlığını açıklayan hata mesajı}
Tüm Gösterge Panellerini Listele
GET /api/{tenantId}/{projectId}/dashboard
Belirtilen proje içindeki tüm gösterge panellerinin sayfalanmış listesini getirir. Her gösterge paneli meta veriler, panel sayısı ve paylaşılabilir URL içerir.
Yol Parametreleri
| Parametre | Tür | Gerekli | Açıklama |
|---|---|---|---|
tenantId |
GUID | Evet | Tenant kimliği |
projectId |
GUID | Evet | Proje kimliği |
Sorgu Parametreleri
| Parametre | Tür | Varsayılan | Açıklama |
|---|---|---|---|
page |
integer | 1 | Sayfa numarası (sayfalama için) |
pageSize |
integer | 50 | Sayfa başına öğe sayısı (önerilen maksimum: 100) |
Yanıt (200 OK)
{
"dashboards": [
{
"dashboardId": "880e8400-e29b-41d4-a716-446655440000",
"projectId": "660e8400-e29b-41d4-a716-446655440000",
"name": "Process Overview Dashboard",
"description": "Ana gösterge paneli, önemli süreç metriklerini gösterir",
"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
}
Yanıt Alanları
| Alan | Tür | Açıklama |
|---|---|---|
dashboards |
array | Gösterge paneli nesnelerinin listesi |
totalCount |
integer | Toplam gösterge paneli sayısı |
page |
integer | Mevcut sayfa numarası |
pageSize |
integer | Sayfa başına öğe sayısı |
Gösterge Paneli Nesnesi Alanları
| Alan | Tür | Açıklama |
|---|---|---|
dashboardId |
GUID | Gösterge paneli için benzersiz kimlik |
projectId |
GUID | Bu gösterge panelinin ait olduğu proje |
name |
string | Gösterge panelinin görüntüleme adı |
description |
string | Gösterge panelinin açıklaması |
panelCount |
integer | Gösterge panelindeki panel sayısı |
url |
string | Gösterge paneli için paylaşılabilir URL |
dateCreated |
datetime | Gösterge panelinin oluşturulma zamanı |
dateModified |
datetime | Gösterge panelinin en son değiştirilme zamanı |
createdBy |
string | Gösterge panelini oluşturan kullanıcı |
modifiedBy |
string | Gösterge panelini en son değiştiren kullanıcı |
Gösterge Paneli Ayrıntılarını Getirme
GET /api/{tenantId}/{projectId}/dashboard/{dashboardId}
Belirli bir gösterge paneli hakkında meta veriler, panel sayısı ve paylaşılabilir URL de dahil olmak üzere kapsamlı bilgileri getirir.
Yol Parametreleri
| Parametre | Tür | Gerekli | Açıklama |
|---|---|---|---|
tenantId |
GUID | Evet | Tenant kimliği |
projectId |
GUID | Evet | Proje kimliği |
dashboardId |
GUID | Evet | Gösterge paneli kimliği |
Yanıt (200 OK)
{
"dashboardId": "880e8400-e29b-41d4-a716-446655440000",
"projectId": "660e8400-e29b-41d4-a716-446655440000",
"name": "Process Overview Dashboard",
"description": "Ana gösterge paneli, önemli süreç metrikleri ve performans göstergelerini gösterir",
"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"
}
Hata Yanıtları
Bulunamadı (404):
{
"Error": "Dashboard bulunamadı",
"DashboardId": "880e8400-e29b-41d4-a716-446655440000"
}
Gösterge Panelleri Oluşturma
Gösterge paneli oluşturma, investigation context ve notebook ilişkilerini gerektirdiği için mindzieStudio UI üzerinden yönetilir. Ayrıntılar için Dashboard Genel Bakış bölümüne bakın.
Uygulama Örnekleri
cURL
# Bağlantıyı test et (auth yok)
curl -X GET "https://your-mindzie-instance.com/api/12345678-1234-1234-1234-123456789012/87654321-4321-4321-4321-210987654321/dashboard/unauthorized-ping"
# Bağlantıyı test et (kimlik doğrulamalı)
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"
# Tüm gösterge panellerini listele
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"
# Belirli gösterge panelini al
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 bulunamadı');
} else {
throw new Error(`Gösterge paneli alınamadı: ${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;
}
}
// Kullanım
const manager = new DashboardManager('your-auth-token');
// Tüm gösterge panellerini al
const result = await manager.getAllDashboards();
console.log(`${result.totalCount} adet gösterge paneli bulundu`);
result.dashboards.forEach(d => {
console.log(`- ${d.name}: ${d.panelCount} panel`);
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):
"""Gösterge panellerinin sayfalanmış listesini alır."""
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):
"""Gösterge paneli detaylarını alır."""
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 bulunamadı')
else:
raise Exception(f'Gösterge paneli alınamadı: {response.status_code}')
def list_all_dashboards(self):
"""Tüm gösterge panellerini alır (sayfalama yönetilir)."""
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
# Kullanım
manager = DashboardManager('your-auth-token')
# Tüm gösterge panellerini al
dashboards = manager.get_all_dashboards()
print(f"Toplam gösterge paneli: {dashboards['totalCount']}")
for dashboard in dashboards['dashboards']:
print(f"\nGösterge Paneli: {dashboard['name']}")
print(f" Paneller: {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($"Gösterge panelleri alınamadı: {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} bulunamadı");
}
throw new Exception($"Gösterge paneli alınamadı: {response.StatusCode}");
}
}