REST API Genel Bakış
inSCADA tamamen RESTful bir platformdur. Değişken okuma/yazma, proje yönetimi, alarm sorgulama, bağlantı kontrolü — her şey REST API üzerinden yapılabilir.
Base URL
Section titled “Base URL”https://<inscada-ip>:8082/api//api/ prefix’i olan tüm endpoint’ler JSON alır ve JSON döner. Üç public auth endpoint’i — /login, /validate, /refresh, /logout — /api/ prefix’i olmadan kök altındadır.
Kimlik Doğrulama
Section titled “Kimlik Doğrulama”inSCADA Bearer token + opsiyonel cookie hibrit modeli kullanır. Tarayıcı oturumları cookie ile çalışır; API istemcileri (Postman, curl, SDK) Authorization: Bearer header’ını tercih eder.
1. Login
Section titled “1. Login”POST /loginContent-Type: application/x-www-form-urlencoded
username=admin&password=adminBaşarılı yanıt:
{ "access_token": "eyJhbG...", "refresh_token": "eyJhbG...", "expire-seconds": 300, "activeSpace": "default_space", "spaces": ["default_space", "production"]}OTP aktifse yanıt farklıdır:
{ "otp_required": true, "otp_type": "MAIL", "username": "admin" }Bu durumda alınan username ile POST /validate çağrılır; OTP kodu doğruysa normal token çifti döner.
2. Token Kullanımı
Section titled “2. Token Kullanımı”Sonraki isteklerde token şu şekilde gönderilir:
GET /api/projectsAuthorization: Bearer <access_token>X-Space: default_space3. Token Yenileme
Section titled “3. Token Yenileme”POST /refreshContent-Type: application/json
{ "refresh_token": "eyJhbG..." }Yeni token çifti döner.
4. Logout
Section titled “4. Logout”POST /logoutAuthorization: Bearer <access_token>X-Space Header
Section titled “X-Space Header”Çoklu space (multi-tenant) kurulumlarda hangi çalışma alanında işlem yapıldığını belirtmek için her API isteğinde X-Space header’ı gönderilmelidir:
X-Space: default_spaceGeçerli space ID’leri login yanıtının spaces alanında döner. Tek space’li kurulumlarda header gönderilmese de varsayılan space kullanılır.
Yanıt Formatı
Section titled “Yanıt Formatı”Tüm yanıtlar JSON’dır.
// Başarılı{ "id": 1, "name": "Temperature", "value": 25.4 }
// Hata{ "status": 400, "error": "Bad Request", "message": "Variable not found: invalid_name" }HTTP Durum Kodları
Section titled “HTTP Durum Kodları”| Kod | Açıklama |
|---|---|
| 200 | Başarılı |
| 201 | Oluşturuldu |
| 400 | Hatalı istek |
| 401 | Kimlik doğrulama gerekli / token geçersiz |
| 403 | Yetkisiz erişim |
| 404 | Bulunamadı |
| 429 | Rate limit aşıldı |
| 500 | Sunucu hatası |
Rate Limiting
Section titled “Rate Limiting”API istekleri rate-limit ile korunur. Aşırı istek durumunda 429 Too Many Requests döner. Limitler sistem yapılandırmasından ayarlanır.
Swagger UI
Section titled “Swagger UI”dev profilinde platformla birlikte gelen interaktif Swagger UI:
https://<inscada-ip>:8082/swagger-ui/Üretim dağıtımlarında aynı spec bu sitedeki REST API Reference bölümünde sunulur.