İçeriğe geç

REST API Genel Bakış

inSCADA, tamamen RESTful bir mimariye sahiptir. Platformdaki her işlem — değişken okuma/yazma, proje yönetimi, alarm sorgulama, bağlantı kontrolü — REST API üzerinden gerçekleştirilebilir.

Base URL:

https://<inscada-ip>:8082/api/

Tüm endpoint’ler /api/ prefix’i ile başlar. API, JSON formatında veri alır ve döndürür.

inSCADA REST API, form tabanlı login ve JWT token ile kimlik doğrulama kullanır.

POST /login
Content-Type: multipart/form-data
username=admin&password=admin

Başarılı yanıt, ins_access_token ve ins_refresh_token cookie’lerini set eder.

Login sonrası alınan cookie’ler sonraki isteklerde otomatik gönderilir. Alternatif olarak token header ile de gönderilebilir:

GET /api/projects
Cookie: ins_access_token=<token>; ins_refresh_token=<token>
X-Space: default_space

Çoklu çalışma alanı (multi-tenant) yapısında, hangi space’te çalışıldığını belirtmek için X-Space header’ı kullanılır:

X-Space: default_space

inSCADA REST API, 91 controller ve 1100+ endpoint içerir. Aşağıda ana kategoriler ve temel endpoint’ler listelenmiştir:

MetodEndpointAçıklama
POST/loginKullanıcı girişi
GET/api/auth/currentUserOturum açmış kullanıcı bilgisi
GET/api/auth/loggedInUsersAktif oturum listesi
GET/api/usersKullanıcı listesi
POST/api/usersYeni kullanıcı oluştur
PUT/api/users/{id}Kullanıcı güncelle
DELETE/api/users/{id}Kullanıcı sil
GET/api/users/{id}/rolesKullanıcının rolleri
MetodEndpointAçıklama
GET/api/spacesSpace listesi
GET/api/spaces/{id}Space detayı
POST/api/spacesYeni space oluştur
PUT/api/spaces/{id}Space güncelle
DELETE/api/spaces/{id}Space sil
MetodEndpointAçıklama
GET/api/projectsProje listesi
GET/api/projects/{id}Proje detayı
GET/api/projects/{id}/statusProje durumu
POST/api/projectsYeni proje oluştur
PUT/api/projects/{id}Proje güncelle
DELETE/api/projects/{id}Proje sil
POST/api/projects/cloneProje klonla
MetodEndpointAçıklama
POST/api/connections/{id}/startBağlantıyı başlat
POST/api/connections/{id}/stopBağlantıyı durdur
GET/api/connections/{id}/statusBağlantı durumu
GET/api/connections/{id}/browseCihaz keşfi (OPC UA, OPC DA)

Her protokolün kendi CRUD endpoint’leri vardır:

  • /api/modbus/connections, /api/dnp3/connections, /api/iec104/connections
  • /api/modbus/variables, /api/dnp3/variables
MetodEndpointAçıklama
GET/api/variables/{id}/valueTek değişken anlık değeri
GET/api/variables/values?projectId=X&names=a,bToplu anlık değer
POST/api/variables/{id}/valueDeğişkene değer yaz
GET/api/variables/loggedValuesTarihsel veri sorgula
GET/api/variables/loggedValues/statsİstatistik (avg, min, max)
GET/api/variables/loggedValues/stats/hourlySaatlik istatistik
MetodEndpointAçıklama
GET/api/alarms/fired-alarmsAktif alarmlar
GET/api/alarms/fired-alarms/allTüm alarm geçmişi
POST/api/alarms/fired-alarms/acknowledgeAlarm onayla
POST/api/alarms/fired-alarms/force-offAlarm zorla kapat
MetodEndpointAçıklama
GET/api/scriptsScript listesi
GET/api/scripts/{id}Script detayı
POST/api/scriptsYeni script oluştur
PUT/api/scripts/{id}Script güncelle
DELETE/api/scripts/{id}Script sil
GET/api/scripts/{id}/statusScript çalışma durumu
POST/api/scripts/runnerScript kodu çalıştır (ad-hoc)
MetodEndpointAçıklama
GET/api/animationsAnimasyon listesi
GET/api/animations/{id}Animasyon detayı
POST/api/animationsYeni animasyon oluştur
PUT/api/animations/{id}Animasyon güncelle
PUT/api/animations/{id}/svgSVG içeriği güncelle
POST/api/animations/{id}/cloneAnimasyon klonla
MetodEndpointAçıklama
GET/api/trendsTrend listesi
POST/api/trendsYeni trend oluştur
GET/api/trends/{id}/tagsTrend tag’leri
POST/api/trends/{id}/tagsTag ekle
MetodEndpointAçıklama
GET/api/custom-menusMenü listesi
POST/api/custom-menusYeni menü oluştur
PUT/api/custom-menus/{id}Menü güncelle
DELETE/api/custom-menus/{id}Menü sil
MetodEndpointAçıklama
GET/api/reportsRapor listesi
POST/api/reports/{id}/runRapor çalıştır
GET/api/reports/{id}/export/pdfPDF dışa aktar
GET/api/reports/{id}/export/excelExcel dışa aktar
MetodEndpointAçıklama
GET/api/versionPlatform versiyonu
GET/api/licenseLisans bilgisi
GET/api/cluster/leaderCluster lider node
GET/api/system/statusSistem durumu
Terminal window
curl -b cookies.txt http://localhost:8081/api/version -H "X-Space: default_space"
20260311-1-jdk11

inSCADA, yerleşik Swagger UI ile interaktif API dokümantasyonu sağlar. Geliştirme modunda (dev profili) aktifleşir:

https://<inscada-ip>:8082/swagger-ui/

Swagger UI üzerinden tüm endpoint’leri keşfedebilir, parametre açıklamalarını görebilir ve doğrudan test istekleri gönderebilirsiniz.

Tüm yanıtlar JSON formatındadır:

// Başarılı yanıt
{
"id": 1,
"name": "Temperature",
"value": 25.4,
...
}
// Hata yanıtı
{
"status": 400,
"error": "Bad Request",
"message": "Variable not found: invalid_name"
}
KodAçıklama
200Başarılı
201Oluşturuldu
400Hatalı istek
401Kimlik doğrulama gerekli
403Yetkisiz erişim
404Bulunamadı
500Sunucu hatası

API istekleri rate-limit ile korunur. Aşırı istek durumunda 429 Too Many Requests yanıtı döner. Limit değerleri sistem yapılandırmasından ayarlanabilir.