İçeriğe geç

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.

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.

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.

POST /login
Content-Type: application/x-www-form-urlencoded
username=admin&password=admin

Baş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.

Sonraki isteklerde token şu şekilde gönderilir:

GET /api/projects
Authorization: Bearer <access_token>
X-Space: default_space
POST /refresh
Content-Type: application/json
{ "refresh_token": "eyJhbG..." }

Yeni token çifti döner.

POST /logout
Authorization: Bearer <access_token>

Ç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_space

Geç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.

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" }
KodAçıklama
200Başarılı
201Oluşturuldu
400Hatalı istek
401Kimlik doğrulama gerekli / token geçersiz
403Yetkisiz erişim
404Bulunamadı
429Rate limit aşıldı
500Sunucu hatası

API istekleri rate-limit ile korunur. Aşırı istek durumunda 429 Too Many Requests döner. Limitler sistem yapılandırmasından ayarlanır.

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.