5.3 ClientREST

<< İçindekileri Görüntülemek İçin Tıklayın >>

Yer:  Teknik Kılavuzlar > Netsim System Agent Kurulum ve Yönetim Kılavuzu > 5. Servis yüzeyleri >

5.3 ClientREST

İstemci uygulamalarının kullandığı yüzey. Bu işlemci anonim erişime kapalı değildir; koruma uç başınadır. İstemci yazan için gövde/yanıt şekilleri, WebSocket komutları, LSP yanıt tipleri ve mesaj kanalları tek belgede toplanmıştır: docs/netsim-system-agent-protokol.md. Bu bölüm operatör bakışını verir.

NetsimWEB istemci türü. OpenSession gövdesinde ClientName: "NetsimWEB" ile açılan oturum web sunucusunun kullanıcı başına oturumudur ve üç yönden farklıdır: (1) Basic auth ile doğrulanmış, WEBSERVERS rolünde (ya da yönetici) bir servis kimliği ister — kimliksiz istek 401, rolsüz kimlik 403 (bkz. “Oturum yöneticileri, kullanıcılar ve roller”); (2) lisansta masaüstü gibi tam kullanıcı (nslmFullUser) koltuğuyla sayılır — ayrı bir web modülü yoktur — ama bonus eşleşmesine girmez; (3) oturum bildirim köprüsüdür: /user/ ön ekine abone olur, bütün kullanıcı kanallarının mesajlarını topic alanıyla alır ve kendi kullanıcılarına dağıtır. SESSIONS raporu oturum başına clientType ve sonda counts (web / desktop / other) verir.

Hata sözleşmesi — durum kodu hatayı anlatmaz. Başarılı çağrılar 200 OK döner. Hata yolları da başarı ailesinden bir kod kullanır: 202 Accepted, gövdede {"result": false, "message": "..."}. Yani bir çağrının başarılı olup olmadığı durum kodundan değil, gövdedeki result alanından anlaşılır ve durum kodu hatanın cinsini (eksik parametre, desteklenmeyen sürüm, lisans reddi) taşımaz. Bu, HTTP semantiğine uymayan bilinçli bir uyum tercihidir — mevcut istemci durum kodunu okumuyor ve 4xx/5xx'e geçmek onun hata mesajını kaybettirirdi. Bunu tüketen tarafta bilmek gerekir: 202'yi başarı sayan bir vekil sunucu, izleme aracı ya da yeni bir istemci hataları sessizce kaçırır. İstisnalar: oturumsuz USERLIST 401, tanınmayan uç 400, kapasite dolu ise 503 (Retry-After ile).

UçKimlikAçıklama
GET PRODUCTLISTanonimLisanslı ürünler. Lisans geçersizse result: false.
GET DATABASELIST[?product=<kod>]anonimMASTER'daki veritabanı kayıtları (Name, Description, Product, StorageEngine, Server, Port, Database, CharSet); product verilirse yalnız o ürün kodunun kayıtları (NetsimApp girişi ?product=NETSIM ile çağırır). Yalnız MASTER okunur, veritabanlarına bağlanılmaz; ürün kodu kayıt satırındaki aynadır (BEGIN/SET LEVEL ... PRODUCT, UPGRADE ve OPEN DATABASE yazar). Bağlantı kimliği (kullanıcı adı, parola) hiç yazılmaz.
GET SYSTEMAGENTVERSIONanonimAjan sürümü.
GET USERLISTaçık oturumBağlı kullanıcılar. Oturumsuz çağrı 401 alır.
POST REPORTPREVIEWaçık oturumRapor önizleme; başarıda gövde raporun akışıdır (öndeğerde PDF, application/pdf; %PDF ile başlamayan çıktı application/octet-stream). database isteğe bağlıdır (öndeğer veritabanı), userName/password yok sayılır; eksik FILTRE_NO/FILTRELER 202 + mesaj döner.
POST REPORTPRINTaçık oturumRaporu sunucu tarafında bastırır (önizlemeden farkı budur: çıktı çağırana değil, sunucunun yazıcısına gider). Gövde REPORTPREVIEW ile aynıdır: database, userName, password ve FilterValues içinde FILTRE_NO, FILTRELER (OPTIONS isteğe bağlı). Başarı 200 + result: true; eksik parametre ya da baskı hatası 202 + result: false ve message.
POST HELPSEARCH, HELPTOPIC, HELPFORMINFOanonimNetsimApp'in uygulama içi yardımı, yardım havuzundan (help.db): arama (query, module, limit öndeğer 5 en çok 20, mode öndeğer hybrid), konu (slug, form_class ya da islem_kodu; maxChars metni kısaltır) ve form bilgisi (form_class). Yetki denetimi yoktur; her öğe çevrimiçi yardım adresini (help_url) taşır. Anlamca arama gömme modeli ister; model ya da ONNX Runtime yoksa tam metinle aranır ve yanıttaki method fts olur. help.db yoksa 202 + help pool not found.
POST DOCCOLLECTIONS, DOCSEARCH, DOCTOPIC, DOCENTITYaçık oturumMüşteri belgeleri, oturumun veritabanının belge havuzundan (ALTER DATABASE … SET DOCUMENTS): izinli koleksiyonlar, arama (yardımdakiyle aynı, ayrıca collection), konu (collection + slug ya da kind + key; maxChars) ve varlık bilgisi (kind, key). Sonuçlar oturumu açan kullanıcının adı, onun oturum veritabanındaki rolleri ve MASTER rolleriyle süzülür (koleksiyonun erişimi ve konu izinleri); izinsiz konu bulunamadı sayılır. Havuz içe alınmamışsa 202 + document pool not imported.
Dikkat — dağıtımda bilinmesi gereken

Rapor uçları açık oturum ister ama rapor her zaman yapılandırmadaki bağlantı kimliğiyle üretilir; istemcinin kimliği veritabanına iletilmez. /ClientREST yolunu güvenilmeyen ağlara doğrudan açmayın.