Web Service

GenControlRoom Web Service API bölümü, GenRPA sisteminde Swagger arayüzü üzerinden süreçlerin tetiklenmesi, planlanması ve yönetilmesi için kullanılan web servis uç noktalarını (API Endpoints) açıklar. Bu arayüz, geliştiricilere ve yöneticilere süreçlerin uzaktan yönetilmesini, planlamaların yapılmasını ve sistemdeki makinelerin durumlarının izlenmesini sağlar.

Tüm istekler JWT token ile yetkilendirilmelidir. Token alınmadan diğer uç noktalar kullanılamaz.

Token kullanılırken "Bearer" ibaresi eklenmemelidir; yalnızca token değeri yeterlidir.

Ana servis adresi (Base URL): http://localhost/GenControlRoom

Kullanıcı ve Rol Bilgilendirmesi

Web Service kullanıcıları, ControlRoom üzerinden varsayılan olarak aşağıdaki yetkilere sahiptir:

  • Schedule Add

  • Schedule Update

Ek olarak, kullanıcının süreç ve makine listelerini görüntüleyebilmesi için ControlRoom’da Web Service rolüne AllowViewMachinesAPI izni verilmelidir.

GenControlRoom Web Service API bölümü, varsayılan olarak bir Web Service kullanıcısı tanımlar. Bu kullanıcı, web servis işlemlerini gerçekleştirmek için gerekli temel yetkilere sahiptir. Talep edilmesi durumunda, bu kullanıcıya ait giriş bilgileri tarafımızca paylaşılabilir. Ayrıca, dilerseniz kendi kullanıcılarınızı da oluşturabilirsiniz. Bunun için aşağıdaki adımları izleyebilirsiniz.

UsersRoles

Genel Bilgilendirme

API Uç Noktaları

Token Alma (Login)

Endpoint: POST http://localhost/GenControlRoom/api/auth/login

{
  "username": "kullaniciAdi",
  "password": "sifre"
}

Örnek Yanıt (Başarılı):

{
  "Result": true,
  "ErrorCode": null,
  "ErrorMessage": null,
  "Data": {
    "AccessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9....",
    "TokenType": "Bearer",
    "ExpiresIn": "2025-10-10T12:00:32.8370179+03:00",
    "User": {
      "Name": "ApiClient",
      "Surname": "ApiClient",
      "Email": "[email protected]",
      "Username": "[email protected]"
    }
  }
}

Not: AccessToken değeri, diğer tüm API isteklerinde Authorization header’ında kullanılmalıdır.

Süreç Listesini Getirme

Endpoint: GET http://localhost/GenControlRoom/api/process

Kullanıcının erişimine açık olan mevcut süreçleri listeler.

Örnek Yanıt:

[
  {
    "ProcessId": 833,
    "Name": "debugTest"
  }
]

Süreç Değişkenlerini Getirme

Endpoint: GET http://localhost/GenControlRoom/api/process/{processId}/variables

Belirli bir sürece ait değişkenleri döner. Yalnızca “Allow Web Service Input” seçeneği stüdyoda işaretlenmiş değişkenler listelenir. Bu değişkenler arasından yalnızca value alanı değiştirilebilir.

Örnek Yanıt:

{
  "variables": [
    {
      "name": "Variable 1",
      "value": "testlog",
      "type": "string"
    }
  ]
}

Süreç Planlama (Ekleme)

Endpoint: POST http://localhost/GenControlRoom/api/process/schedules

Yeni bir süreç planı oluşturur.

Notlar:

  • Cron değeri gönderilmezse süreç 1 dakika sonra otomatik başlar.

  • username ve variables alanları isteğe bağlıdır.

  • isEnabled varsayılan olarak true, workInQueue ve backgroundProcess varsayılan olarak false değerini alır.

  • machineId değeri 0 gönderilirse süreç tüm makinelerde çalışır; aksi halde belirli bir makine ID’si belirtilmelidir.

Örnek İstek:

{
  "name": "string",
  "processId": 0,
  "machineId": 0,
  "username": "string",
  "scheduleStart": "05-10-2025 15:19",
  "scheduleEnd": "06-10-2026 15:19",
  "cronExpression": "string",
  "priority": 1,
  "isEnabled": true,
  "workInQueue": false,
  "backgroundProcess": false,
  "variables": [
    {
      "name": "string",
      "value": "string",
      "type": "string"
    }
  ]
}

Başarılı Yanıt:

{
  "Result": true,
  "ErrorCode": null,
  "ErrorMessage": null,
  "Data": 43649
}

Başarısız Yanıt:

{
  "Result": false,
  "ErrorCode": "error code",
  "ErrorMessage": "error message",
  "Data": null
}

Süreç Güncelleme (Update)

Endpoint: PUT http://localhost/GenControlRoom/api/process/schedules/{scheduleId}

Var olan bir planı günceller. Yalnızca değiştirilecek alanların gönderilmesi yeterlidir.

Örnek İstek:

{
  "name": "string",
  "processId": 0,
  "machineId": 0,
  "username": "string",
  "scheduleStart": "2025-10-09T11:09:22.262Z",
  "scheduleEnd": "2025-10-09T11:09:22.262Z",
  "cronExpression": "string",
  "priority": 0,
  "isEnabled": true,
  "workInQueue": true,
  "backgroundProcess": true,
  "variables": [
    {
      "name": "string",
      "value": "string",
      "type": "string"
    }
  ]
}

Başarılı Yanıt:

{
  "Result": true,
  "ErrorCode": null,
  "ErrorMessage": null,
  "Data": 43648
}

Hata Yanıtı:

{
  "Result": false,
  "ErrorCode": "WS-013",
  "ErrorMessage": "Error updating schedule: String '2025-10-10T08:03:32.35Z' was not recognized as a valid DateTime.",
  "Data": null
}

Makine Listesini Getirme

Endpoint: GET http://localhost/GenControlRoom/api/process/machines

Tüm kayıtlı makineleri listeler.

Bu isteğin çalışabilmesi için ControlRoom’da WebService rolüne AllowViewMachinesAPI izni verilmelidir.

Planlanmış Süreçleri Getirme

Endpoint: GET http://localhost/GenControlRoom/api/process/schedules

Tüm planlanmış süreçleri listeler.

Örnek Yanıt:

[
  {
    "ScheduleId": 43547,
    "ProcessId": 833,
    "ProcessName": "debugTest",
    "MachineId": 0,
    "StatusId": 3,
    "StatusName": "Completed",
    "Name": "debugTest",
    "StartTime": "19-08-2025 01:22",
    "EndTime": "19-09-2025 01:22",
    "IsEnabled": true,
    "WorkInQueue": true,
    "BackgroundProcess": false,
    "CronExpression": "24 01 * * *",
    "NextOccurence": "07-10-2025 01:24"
  }
]

Önemli Notlar

  • Değişkenlerin value alanları yalnızca stüdyo üzerinde “Allow Web Service Input” seçeneği işaretlenmişse değiştirilebilir.

  • Tüm istekler JWT token ile yetkilendirilmelidir.

  • Token almak için /api/auth/login endpoint’i kullanılmalıdır.

  • Swagger arayüzünde “Authorize” butonuna tıklandığında yalnızca token değeri girilmelidir, "Bearer" yazılmamalıdır.

  • Tarih formatı “dd-MM-yyyy HH:mm” biçiminde olmalıdır.

  • Web servis isteklerinin çalışabilmesi için GenControlRoom servisinin kurulu olduğu sunucunun dış erişime açık olması gerekmektedir.

Last updated