URL Oluşturma
Varlık URL'leri Oluşturma
GET /api/{tenantId}/url/generate
mindzieStudio sayfalarına ve varlıklara doğrudan URL'ler oluşturun. Bu API, projeler, panolar, incelemeler, not defterleri, bloklar ve diğer varlıklara gitmek için düzgün biçimlendirilmiş URL'ler oluşturur.
Kimlik Doğrulama
Bearer token kimlik doğrulaması gerektirir:
Authorization: Bearer {api_key}
İstek
GET /api/{tenantId}/url/generate?type={urlType}&entityId={id}&parentId={parentId}
Authorization: Bearer {token}
Yol Parametreleri
| Parametre | Tür | Zorunlu | Açıklama |
|---|---|---|---|
tenantId |
GUID | Evet | Kiracı tanımlayıcısı |
Sorgu Parametreleri
| Parametre | Tür | Zorunlu | Açıklama |
|---|---|---|---|
type |
String | Evet | Oluşturulacak URL türü (aşağıdaki URL Türlerine bakınız) |
entityId |
GUID | Koşullu | Varlığa özgü sayfalar için varlık kimliği |
parentId |
GUID | Koşullu | Üst kimlik (türe bağlı olarak projectId veya notebookId) |
baseUrl |
String | Hayır | Temel URL üzerine yazma (istek kaynağı varsayılan) |
URL Türleri
Liste Sayfaları
Bu URL türleri liste/index sayfalarına doğrudan URL'ler döner:
| Tür | parentId Gerekli | Oluşturulan URL Deseni |
|---|---|---|
projects |
Hayır | /projects?tenantId={tenantId} |
apps |
Hayır | /apps?tenantId={tenantId} |
investigations |
Evet (projectId) | /investigations?projectId={parentId} |
dashboards-list |
Evet (projectId) | /dashboards?projectId={parentId} |
datasets |
Evet (projectId) | /manage-datasets?projectId={parentId} |
actions |
Evet (projectId) | /actions?projectId={parentId} |
bpmn |
Evet (projectId) | /bpmn-editor?projectId={parentId} |
Varlık Sayfaları
Bu URL türleri, belirli varlıklara yönlendiren /navigate URL'leri döner:
| Tür | entityId | parentId | Açıklama |
|---|---|---|---|
dashboard |
dashboardId | - | Tek panoya görüntüleme |
analysis |
notebookId | - | Not defteri / analiz sayfası |
block |
blockId | notebookId | Not defteri sayfasındaki belirli blok |
enrichment |
enrichmentNotebookId | projectId (opsiyonel) | Zenginleştirme not defteri |
Yanıt
Yanıt Yapısı
{
"url": "https://your-instance.mindziestudio.com/projects?tenantId=...",
"entityType": "projects",
"entityId": null,
"tenantId": "660e8400-e29b-41d4-a716-446655440000"
}
Yanıt Alanları
| Alan | Tür | Açıklama |
|---|---|---|
url |
String | İstenen sayfa veya varlık için tam nitelikli URL |
entityType |
String | Oluşturulan URL türü (type parametresi ile eşleşir) |
entityId |
GUID veya null | Varlığa özgü URL oluşturulduysa varlık kimliği |
tenantId |
GUID | İstek sırasında kullanılan kiracı ID'si |
Örnekler
Liste Sayfaları
Projeler Listesi URL'sini Al
curl -H "Authorization: Bearer {api_key}" \
"https://host/api/{tenantId}/url/generate?type=projects"
Yanıt:
{
"url": "https://host/projects?tenantId=660e8400-e29b-41d4-a716-446655440000",
"entityType": "projects",
"entityId": null,
"tenantId": "660e8400-e29b-41d4-a716-446655440000"
}
Bir Proje İçin İncelemeleri Al
curl -H "Authorization: Bearer {api_key}" \
"https://host/api/{tenantId}/url/generate?type=investigations&parentId={projectId}"
Yanıt:
{
"url": "https://host/investigations?projectId=770e8400-e29b-41d4-a716-446655440001",
"entityType": "investigations",
"entityId": null,
"tenantId": "660e8400-e29b-41d4-a716-446655440000"
}
Bir Proje İçin Panolar Listesini Al
curl -H "Authorization: Bearer {api_key}" \
"https://host/api/{tenantId}/url/generate?type=dashboards-list&parentId={projectId}"
Varlık Sayfaları
Bir Pano İçin Doğrudan Bağlantı
curl -H "Authorization: Bearer {api_key}" \
"https://host/api/{tenantId}/url/generate?type=dashboard&entityId={dashboardId}"
Yanıt:
{
"url": "https://host/navigate?type=dashboard&id=880e8400-e29b-41d4-a716-446655440002",
"entityType": "dashboard",
"entityId": "880e8400-e29b-41d4-a716-446655440002",
"tenantId": "660e8400-e29b-41d4-a716-446655440000"
}
Bir Not Defteri / Analize Doğrudan Bağlantı
curl -H "Authorization: Bearer {api_key}" \
"https://host/api/{tenantId}/url/generate?type=analysis&entityId={notebookId}"
Belirli Bir Bloka Doğrudan Bağlantı
curl -H "Authorization: Bearer {api_key}" \
"https://host/api/{tenantId}/url/generate?type=block&entityId={blockId}&parentId={notebookId}"
Yanıt:
{
"url": "https://host/navigate?type=block&id=990e8400-e29b-41d4-a716-446655440003¬ebookId=aa0e8400-e29b-41d4-a716-446655440004",
"entityType": "block",
"entityId": "990e8400-e29b-41d4-a716-446655440003",
"tenantId": "660e8400-e29b-41d4-a716-446655440000"
}
JavaScript Örneği
class UrlGenerator {
constructor(baseUrl, tenantId, token) {
this.baseUrl = baseUrl;
this.tenantId = tenantId;
this.headers = {
'Authorization': `Bearer ${token}`,
'Content-Type': 'application/json'
};
}
async generateUrl(type, options = {}) {
const params = new URLSearchParams({ type });
if (options.entityId) {
params.append('entityId', options.entityId);
}
if (options.parentId) {
params.append('parentId', options.parentId);
}
if (options.baseUrl) {
params.append('baseUrl', options.baseUrl);
}
const response = await fetch(
`${this.baseUrl}/api/${this.tenantId}/url/generate?${params}`,
{ headers: this.headers }
);
if (!response.ok) {
throw new Error(`URL oluşturulamadı: ${response.status}`);
}
return response.json();
}
// Kullanım kolaylığı metotları
async getProjectsUrl() {
return this.generateUrl('projects');
}
async getInvestigationsUrl(projectId) {
return this.generateUrl('investigations', { parentId: projectId });
}
async getDashboardUrl(dashboardId) {
return this.generateUrl('dashboard', { entityId: dashboardId });
}
async getBlockUrl(blockId, notebookId) {
return this.generateUrl('block', {
entityId: blockId,
parentId: notebookId
});
}
}
// Kullanım
const urlGen = new UrlGenerator(
'https://your-instance.mindziestudio.com',
'tenant-guid',
'your-api-token'
);
// Projeler listesi için URL al
const projectsUrl = await urlGen.getProjectsUrl();
console.log('Projeler URL:', projectsUrl.url);
// Belirli bir pano için URL al
const dashboardUrl = await urlGen.getDashboardUrl('dashboard-guid');
console.log('Pano URL:', dashboardUrl.url);
// Belirli bir blok için URL al
const blockUrl = await urlGen.getBlockUrl('block-guid', 'notebook-guid');
console.log('Blok URL:', blockUrl.url);
Python Örneği
import requests
from typing import Optional, Dict, Any
class UrlGenerator:
def __init__(self, base_url: str, tenant_id: str, token: str):
self.base_url = base_url
self.tenant_id = tenant_id
self.headers = {
'Authorization': f'Bearer {token}',
'Content-Type': 'application/json'
}
def generate_url(
self,
url_type: str,
entity_id: Optional[str] = None,
parent_id: Optional[str] = None,
base_url_override: Optional[str] = None
) -> Dict[str, Any]:
"""Belirtilen tür ve varlık için URL oluşturur"""
params = {'type': url_type}
if entity_id:
params['entityId'] = entity_id
if parent_id:
params['parentId'] = parent_id
if base_url_override:
params['baseUrl'] = base_url_override
url = f"{self.base_url}/api/{self.tenant_id}/url/generate"
response = requests.get(url, params=params, headers=self.headers)
response.raise_for_status()
return response.json()
# Liste sayfaları için kolay kullanım metotları
def get_projects_url(self) -> str:
return self.generate_url('projects')['url']
def get_investigations_url(self, project_id: str) -> str:
return self.generate_url('investigations', parent_id=project_id)['url']
def get_dashboards_list_url(self, project_id: str) -> str:
return self.generate_url('dashboards-list', parent_id=project_id)['url']
def get_datasets_url(self, project_id: str) -> str:
return self.generate_url('datasets', parent_id=project_id)['url']
def get_actions_url(self, project_id: str) -> str:
return self.generate_url('actions', parent_id=project_id)['url']
# Varlık sayfaları için kolay kullanım metotları
def get_dashboard_url(self, dashboard_id: str) -> str:
return self.generate_url('dashboard', entity_id=dashboard_id)['url']
def get_analysis_url(self, notebook_id: str) -> str:
return self.generate_url('analysis', entity_id=notebook_id)['url']
def get_block_url(self, block_id: str, notebook_id: str) -> str:
return self.generate_url('block', entity_id=block_id, parent_id=notebook_id)['url']
def get_enrichment_url(self, enrichment_id: str, project_id: Optional[str] = None) -> str:
return self.generate_url('enrichment', entity_id=enrichment_id, parent_id=project_id)['url']
# Kullanım
url_gen = UrlGenerator(
'https://your-instance.mindziestudio.com',
'tenant-guid',
'your-api-token'
)
# Çeşitli URL'leri al
projects_url = url_gen.get_projects_url()
print(f"Projeler: {projects_url}")
investigations_url = url_gen.get_investigations_url('project-guid')
print(f"İncelemeler: {investigations_url}")
dashboard_url = url_gen.get_dashboard_url('dashboard-guid')
print(f"Pano: {dashboard_url}")
block_url = url_gen.get_block_url('block-guid', 'notebook-guid')
print(f"Blok: {block_url}")
MCP Sunucu Entegrasyonu
AI kodlama asistanları MCP sunucusunu kullanarak URL'ler oluşturabilir:
mindzie_generate_url type="dashboard" entityId="{dashboardId}"
Tam dokümantasyon için MCP Sunucu Entegrasyonu sayfasına bakınız.
Kullanım Senaryoları
Bağlantı Paylaşımı
Belirli panolar, incelemeler veya analiz blokları için paylaşılabilir URL'ler oluşturun.
Entegrasyon İş Akışları
Dış sistemlerde mindzieStudio içinde derin bağlantılayan navigasyon linkleri oluşturun.
AI Asistan Navigasyonu
AI araçlarının uygulamadaki belirli sayfaları oluşturup açmasını sağlayın.
Otomatik Raporlama
Otomatik raporlarda ilgili pano veya analizlere doğrudan bağlantılar dahil edin.
Hata Yönetimi
| Durum Kodu | Açıklama |
|---|---|
| 200 | Başarılı - URL oluşturuldu |
| 400 | Hatalı İstek - Geçersiz tür veya eksik zorunlu parametreler |
| 401 | Yetkisiz - Geçersiz veya eksik kimlik doğrulama tokenı |
| 404 | Bulunamadı - Varlık bulunamadı (varlığa özgü URL için) |