İşlem Gerçekleştir
mindzieStudio içinde programatik olarak işlem tetikleyin.
Genel Bakış
Execute Action uç noktası mindzieStudio içinde belirli bir işlemi tetiklemenizi sağlar. İşlemler asenkron çalıştırma için kuyruğa alınır ve ilerlemeyi takip etmek için bir yürütme kimliği alırsınız.
İşlem Gerçekleştir
GET /api/{tenantId}/{projectId}/action/execute/{actionId}
Belirli bir işlemi ID'si ile çalıştırır. İşlem yürütme kuyruğuna eklenir ve asenkron olarak işlenir.
İstek
GET https://your-mindzie-instance.com/api/{tenantId}/{projectId}/action/execute/{actionId}
Authorization: Bearer {your-access-token}
Yol Parametreleri
| Parametre | Tür | Zorunlu | Açıklama |
|---|---|---|---|
tenantId |
GUID | Evet | Kiracı kimliğiniz |
projectId |
GUID | Evet | Proje kimliğiniz |
actionId |
GUID | Evet | Çalıştırılacak işlem |
Yanıt
Başarılı (200 OK):
{
"actionId": "87654321-4321-4321-4321-210987654321",
"actionExecutionId": "11111111-2222-3333-4444-555555555555",
"dateStarted": "2024-01-15T10:30:00Z",
"dateEnded": null,
"status": "Queued",
"notes": null
}
Yanıt Alanları
| Alan | Tür | Açıklama |
|---|---|---|
actionId |
GUID | Çalıştırılan işlemin ID'si |
actionExecutionId |
GUID | Bu yürütme örneği için benzersiz kimlik |
dateStarted |
datetime | Yürütmenin kuyruğa alındığı zaman |
dateEnded |
datetime | Yürütmenin tamamlandığı zaman (hala çalışıyorsa null) |
status |
string | Güncel yürütme durumu |
notes |
string | Ek yürütme notları veya hata mesajları |
Hata Yanıtları
İşlem Bulunamadı (404):
{
"error": "Action not found",
"actionId": "87654321-4321-4321-4321-210987654321"
}
Yürütme Oluşturulamadı (404):
{
"error": "Action can't create execution",
"actionId": "87654321-4321-4321-4321-210987654321"
}
Yetkisiz (401):
HTTP/1.1 401 Unauthorized
{yetkilendirme hatasını açıklayan hata mesajı}
Yürütme Durumu Değerleri
| Durum | Açıklama |
|---|---|
| Queued | İşlem kuyruğa alındı ve işlenmeyi bekliyor |
| Running | İşlem şu anda çalışıyor |
| Completed | İşlem başarıyla tamamlandı |
| Failed | İşlem gerçekleştirilirken hata oluştu |
Uygulama Örnekleri
cURL
curl -X GET "https://your-mindzie-instance.com/api/12345678-1234-1234-1234-123456789012/87654321-4321-4321-4321-210987654321/action/execute/aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee" \
-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';
const executeAction = async (actionId, token) => {
const url = `${BASE_URL}/api/${TENANT_ID}/${PROJECT_ID}/action/execute/${actionId}`;
try {
const response = await fetch(url, {
method: 'GET',
headers: {
'Authorization': `Bearer ${token}`
}
});
if (response.ok) {
const result = await response.json();
console.log('İşlem kuyruğa alındı:', result);
console.log('Yürütme ID:', result.actionExecutionId);
return result;
} else if (response.status === 404) {
const error = await response.json();
console.error('İşlem bulunamadı:', error);
throw new Error(error.error);
} else {
throw new Error(`Yürütme başarısız oldu: ${response.status}`);
}
} catch (error) {
console.error('İşlem yürütülürken hata:', error);
throw error;
}
};
// Örnek kullanım
executeAction('aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee', 'your_token')
.then(result => {
// handle için actionExecutionId kaydedin
const executionId = result.actionExecutionId;
});
Python
import requests
TENANT_ID = '12345678-1234-1234-1234-123456789012'
PROJECT_ID = '87654321-4321-4321-4321-210987654321'
BASE_URL = 'https://your-mindzie-instance.com'
def execute_action(action_id, token):
"""Bir işlemi çalıştırır ve yürütme detaylarını döner."""
url = f'{BASE_URL}/api/{TENANT_ID}/{PROJECT_ID}/action/execute/{action_id}'
headers = {
'Authorization': f'Bearer {token}'
}
response = requests.get(url, headers=headers)
if response.ok:
result = response.json()
print(f'İşlem kuyruğa alındı: {result}')
print(f'Yürütme ID: {result["actionExecutionId"]}')
return result
elif response.status_code == 404:
error = response.json()
print(f'İşlem bulunamadı: {error}')
raise Exception(error['error'])
else:
raise Exception(f'Yürütme başarısız oldu: {response.status_code}')
# Örnek kullanım
result = execute_action('aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee', 'your_token')
execution_id = result['actionExecutionId']
C#
using System;
using System.Net.Http;
using System.Text.Json;
using System.Threading.Tasks;
public class ActionExecutionResult
{
public Guid ActionId { get; set; }
public Guid ActionExecutionId { get; set; }
public DateTime? DateStarted { get; set; }
public DateTime? DateEnded { get; set; }
public string Status { get; set; }
public string Notes { get; set; }
}
public class ActionApiClient
{
private readonly HttpClient _httpClient;
private readonly string _baseUrl;
private readonly Guid _tenantId;
private readonly Guid _projectId;
public ActionApiClient(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<ActionExecutionResult> ExecuteActionAsync(Guid actionId)
{
var url = $"{_baseUrl}/api/{_tenantId}/{_projectId}/action/execute/{actionId}";
var response = await _httpClient.GetAsync(url);
if (response.IsSuccessStatusCode)
{
var json = await response.Content.ReadAsStringAsync();
var result = JsonSerializer.Deserialize<ActionExecutionResult>(json,
new JsonSerializerOptions { PropertyNameCaseInsensitive = true });
Console.WriteLine($"İşlem kuyruğa alındı. Yürütme ID: {result.ActionExecutionId}");
return result;
}
else if (response.StatusCode == System.Net.HttpStatusCode.NotFound)
{
throw new Exception($"İşlem {actionId} bulunamadı");
}
else
{
throw new Exception($"Yürütme başarısız oldu: {response.StatusCode}");
}
}
}
En İyi Uygulamalar
- Yürütme ID'si Saklayın: Yürütme ilerlemesini takip etmek için her zaman dönen
actionExecutionIddeğerini saklayın - İşlem Var mı Kontrol Edin: İşlemin var olduğundan ve etkin olduğundan emin olmak için öncelikle Get Action uç noktasını kullanın
- Asenkron Doğasını Anlayın: İşlemler asenkron çalışır - yanıt işlem kuyruğa alındığını belirtir, tamamlandığını değil
- Hata Yönetimi: 404 yanıtları (işlem bulunamadı) ve 401 (yetkisiz) durumları için uygun hata yönetimi uygulayın
- Yineleyebilirlik: Her çağrı yeni bir yürütme yaratır - istemediğiniz takdirde yinelenen çağrılardan kaçının