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}");
    }
}