Net-Base Revija

13.04.2026

Razvijanje REST-strežnika z Delphijem: arhitektura, varnost in obratovanje v praksi

Razvoj REST-strežnika z Delphi: praktična razvrstitev WebBroker, Horse, RAD Server in DataSnap. Vključuje API-zasnovo, avtentikacijo, FireDAC-dostop do podatkov, verzioniranje, beleženje, monitoring in uvajanje za Windows in Linux.

13.04.2026

Od teme v reviji do projektne prakse

Ustrezne strani storitev in tehnični opisi k prispevku

Video-Botschaft

Razvijanje REST-strežnika z Delphijem: arhitektura, varnost in obratovanje v praksi

Kurz erklärt, warum bei Delphi-REST-Servern nicht der erste funktionierende Endpunkt zählt, sondern Architektur, Security und Betrieb: konsistente Fehler, Authentifizierung, Logging/Monitoring und sauberes Deployment für Windows und Linux.

Video mit KI erstellt

Transkript anzeigen

Hallo, ich bin Mark. Der erste funktionierende REST-Endpunkt ist oft der Anfang der Probleme, nicht das Ende.

Im Beitrag „REST-Server mit Delphi entwickeln: Architektur, Sicherheit und Betrieb in der Praxis“ geht es genau darum. In Unternehmen scheitern APIs selten an Delphi oder am Framework.

Sie scheitern an Betrieb: uneinheitliche Fehler, fehlende Zeitlimits, unklare Zuständigkeiten. Und an Sicherheit: Authentifizierung, also wer sich ausweist, und Autorisierung, also was jemand darf.

Wichtig ist eine klare Trennung: vorne HTTP und Validierung, in der Mitte die Fachlogik, hinten Datenzugriff. Dazu gehören Logging und Monitoring, damit Sie Störungen nachvollziehen, bevor Nutzer Tickets schreiben.

Wenn Sie dazu Fragen haben, klären wir gern die typischen Stolperstellen aus der Praxis.

Kdor želi razviti REST-strežnik z Delphi, redko zasleduje cilj sam zase. Gre predvsem za vzpostavitev zanesljivih vmesnikov med rastočimi sistemi, portalih, storitvah in podatkovnimi bazami – s konkretnimi zahtevami glede obratovanja, varnosti in vzdržnosti. Odločilno ni, kako hitro odgovori prvi endpoint, temveč ali storitev v vsakdanjem delu ostane stabilna: razumljivi vzorci napak, kontrolirani dostopi do podatkov, urejena avtentikacija, jasne odgovornosti v arhitekturi in uvajanje, ki se prilega Windows- in Linux-okoljem.

Delphi je v številnih organizacijah praktična izbira: obstoječa poslovna logika se da ponovno uporabiti, zmogljivost je praviloma zadostna in obstaja več poti za implementacijo HTTP-podprtih API-jev. V praksi se možnosti razlikujejo manj v smislu „ali zna REST“, bolj pa v preglednosti in upravljanju: kako dosledno lahko uvedete logging, timeoute, pravila za reverse proxy, verzioniranje, OpenAPI-dokumentacijo in varnostne mehanizme?

Ta prispevek razvrsti glavne pristope k Delphi in pokaže, na kaj naj bi IT-vodstvo, administratorji in tehnični odgovorni pazili: od oblikovanja API do varnosti in BDE-zamenjave z natvno povezavo za dostop do podatkov ter do observability (logi, metrike, tracing) in uvajanja kot Windows- ali Windows- in Linux-servisi. Cilj je robustna osnova za integracije v ERP, DMS, CRM ali portal strank – brez da bi središče pozornosti postali notranji okvirji (Framework-Interna).

Kdaj se REST-strežnik v Delphi še posebej izplača

Delphi-REST-backend pogosto smiselno nastane, kadar je Delphi že prisoten v podjetju ali kadar želite nadalje uporabljati poslovno logiko in dostop do podatkov iz obstoječih aplikacij. Tipične B2B-situacije:

  • Obstoječo programsko opremo narediti API-prijazno: VCL-aplikacija ali jedro klient-strežnik dobi REST-plast, da portali, zunanji sistemi ali notranje storitve lahko standardizirano dostopajo.
  • Integracija in odvezava: Več potrošnikov (desktop, spletni portal, batch, partnerji) mora uporabljati iste poslovne procese, brez neposrednih dostopov do baze ali izmenjav datotek.
  • Modernizacija v fazah: Najprej uvesti stabilen API, nato postopoma prenoviti UI, module ali bazo. API postane kontrolirana meja in zmanjša stranske učinke.
  • Obratovanje in varnost: HTTP-API-je je smiselno poganjati za reverse proxyjem, centralno avtenticirati in vključiti v monitoring-stek.

Pomembna je realna pričakovanja: REST je integracijska površina, ne nadomestilo za strokovno konsistentnost. Kdor začne brez jasnega domennega modela, definiranih transakcijskih mej ali odgovornosti za podatke, hitro ustvari API, ki je sicer dosegljiv, a dolgoročno drag za vzdrževanje in podporo.

REST-strežniki z Delphi: pregled možnosti

Delphi ponuja več poti do REST-storitev. Za odločevalce ni ključno „kaj je moderno“, temveč: kako dobro se ujema s strukturo ekipe, operativnim modelom, pričakovano življenjsko dobo in zahtevami skladnosti?

Delphi WebBroker: skromen, pregleden, dobro obvladljiv

WebBroker je uveljavljen Delphi-framework za HTTP-aplikacije. Je blizu protokolu (request/response), zato je dobro razumljiv in privlačen za številne B2B-scenarije, kjer so pomembni kontrolirano ravnanje z napakami, čisto upravljanje headerjev in preprost stack. WebBroker se običajno dobro upravlja za reverse proxyjem, ki tu konča TLS in izvaja centralna varnostna pravila.

Posledica za prakso: številne udobne funkcionalnosti (konvencije za routing, middleware-lanci, vzdrževanje OpenAPI) boste morali sistematično dopolniti. To ni slabost, če so arhitekturni standardi že v ospredju.

Delphi Horse: routing in middleware za jasne API-standarde

Delphi Horse je lahkoten in temelji na razumljivem routingu ter principu middleware. Middleware tukaj pomeni: ponovno uporabne obdelavne korake »okoli« endpointa, npr. avtentikacija, logging, omejitve hitrosti ali validacija zahtev. To je za mnoge ekipe učinkovit pristop, ker se standardi lahko centralno uveljavijo.

Za obratovanje pomembno: zgodaj definirajte enotno obliko napak, timeoute, maksimalne velikosti zahtevkov in standard za logging. Brez teh pravil bo sistem sicer deloval, a bo pri podpori in razširitvah nepotrebno zahteven.

RAD Server: platformni pristop z vgrajenimi gradniki

RAD Server (prej EMS) sledi platformnemu pristopu z vgrajenimi funkcionalnostmi, kot so upravljanje uporabnikov in drugi gradniki. To se lahko prilega scenarijem, kjer več klientov potrebuje skupno hrbtenico in se izrecno uporabljajo platformne funkcije. Za čiste integracijske API-je to ni nujno najboljša izbira; tu pogosto štejeta preglednost, nizke odvisnosti in skromen operativni model.

DataSnap: realistična ocena obstoječih namestitev

DataSnap je v mnogih Delphi-okoljih zgodovinsko prisoten in lahko ponudi HTTP/REST-podobne endpoint-e. Za nove projekte je treba preveriti, ali ustreza želenemu slogu API-ja, avtentikaciji (npr. JWT), OpenAPI/Swagger in sodobnim operativnim zahtevam. Pogosta pragmatična pot je: obstoječo logiko ponovno uporabiti, a navzven postaviti jasno definirano REST-plast, ki zahteve za varnost, logging in verzioniranje dosledno uveljavlja.

Arhitektura, ki nosi v obratovanju in vzdrževanju

Ena pogostih napak v REST-projektih je »handler naredi vse«: HTTP-parametri se preberejo, neposredno sestavi SQL, vgradi poslovna pravila in poleg tega še logging. Na začetku deluje hitro, vendar vodi v težko testno kodo in nestabilne spremembe.

V podjetniških okoljih se izkaže jasna plastna struktura. Pogosta pragmatična ureditev je Layer-3-arhitektura (tri plasti), ki ločuje odgovornosti:

Transportna plast: HTTP, avtentikacija, validacija, odgovor

Tukaj sprejmete request, izvedete osnovno validacijo in ustvarite konsistenten odgovor. V to plast sodita tudi avtentikacija in avtorizacija (kdo ima pravico do česa) ter tehnična pravila, kot so omejitve zahtevkov, CORS ali dodeljevanje Correlation-ID-jev (edinstvenih ID-jev na zahtevo za sledenje).

Domenična plast: poslovni use-case-i namesto logike endpointa

Domena zapakira poslovne tokove, kot so »ustvari naročilo«, »spremeni status« ali »poveži dokument«. Ključno: ta logika naj bo čim manj odvisna od HTTP-frameworka. Tako lahko ista domena služi tudi Windows- in Linux-servisom, daemonu ali batch-procesu, brez podvajanja logike.

Persistenca in integracija: FireDAC, podatkovna baza, ERP/DMS/SMTP

Ta plast združuje dostop do baz podatkov in zunanjih sistemov. Za Delphi je BDE-Ablosung mit nativer Anbindung običajen podatkovno-dostopni stack za čisto povezavo s PostgreSQL, SQL Server, MariaDB/MySQL ali Firebird. Pomembno ni le „uporabljati FireDAC“, temveč imeti zavezujoča pravila: upravljanje povezav, transakcijske meje, timeoute, vezavo parametrov, prevajanje tehničnih napak v API-napake in enotne retry-strategije tam, kjer so smiselne v domeni.

API-design: stabilen skozi leta, ne le do go-live

V B2B-okoljih je API oskrbovana vmesna plast. Ključni pojem je kompatibilnost: potrošniki se zanašajo na polja, statusne kode in semantiko. Bolj ko so pravila jasna, manj dela je pri integraciji, podpori in izdajah.

Viri in poti: konsistentnost pred kreativnostjo

Stabilni API-ji so običajno usmerjeni na vire: »/customers«, »/orders/123«, »/orders/123/items«. Procesne akcije lahko predstavite kot pod-vire ali kot jasno utemeljene akcijske endpoint-e, npr. »/orders/123/cancel«, kadar čisti CRUD-model ni ustrezen. Odločno pomembna je enotna konvencija, dokumentirana in v uporabi v celotni ekipi.

HTTP-metode in statusne kode: jasni signali za potrošnike

API je lažje integrirati, če uporablja pričakovano HTTP-semantiko: GET za branje, POST za ustvarjanje, PUT/PATCH za spremembe, DELETE za brisanje. Prav tako pomembno: dosledno vedenje ob napakah. Za obratovanje je koristno standardizirano napakno telo z:

  • HTTP-status (npr. 400, 401, 403, 404, 409, 422, 500)
  • stabilno kodo napake (strojno berljivo, dokumentirano)
  • Correlation-ID (za hitro povezavo v logih)
  • opcijske podrobnosti (npr. napake polj pri validaciji)

Pogosta zmota so odgovori »200 OK« z besedilom napake v telesu. To otežuje integracije in vodi v ranljivo logiko na klientu.

Verzioniranje in združljive razširitve

Verzioniranje je procesno in komunikacijsko vprašanje, ne le tehnična težava. Pogosti pristopi so verzioniranje v URL-ju (npr. »/api/v1«) ali verzioniranje v headerjih. V mnogih podjetjih pa je najpomembnejše vodilo: razširjati združljivo. Dodajanje novih polj je običajno neproblematično. Odstranitev ali preimenovanje polj zahteva novo verzijo in jasno sporočeno obdobje migracije. To zmanjša prekinitve integracij in omogoči načrtovane izdaje.

Varnost: avtentikacija, avtorizacija, napadalne površine

REST-storitev je potencialna vstopna točka. Veliko varnostnih težav izvira ne iz pomanjkanja šifriranja, temveč iz drobnih napak: preširoke pravice, predolga življenjska doba tokenov, nezaščiteni admin-endpointi, nekontrolirane CORS-prakse ali logi s senzitivnimi podatki.

TLS in Reverse Proxy: jasne odgovornosti v omrežju

V tipičnih konfiguracijah TLS konča pri reverse proxyju (npr. Nginx, Apache ali Microsoft IIS kot reverse proxy). Delphi-storitev teče interno prek HTTP in je dosegljiva samo iz notranjega omrežja. Pomembna so čista pravila za »X-Forwarded-For« in »X-Forwarded-Proto«, da se pravilno interpretirata IP stranke in protokol. Te informacije so pomembne za revizijo, omejevanje hitrosti in iskanje napak.

JWT, API-Keys in SSO: kaj v praksi ustreza

Za sistem-sistem integracije so razširjeni API-Keys ali mehanizmi client-credentials. Za uporabniške dostope v podjetniškem kontekstu so JWT (JSON Web Token) v kombinaciji s centralnim identity providerjem (npr. OIDC) pogosto praktična rešitev. V SSO-landskapih je lahko relevantna tudi SAML 2.0 (standard za single sign-on, običajno med portalom/gatewayem in identity providerjem).

Ne glede na izbrani postopek je smiselno določiti:

  • rotacijo ključev in certifikatov (kako se podpisni ključi obnavljajo?)
  • vloge/obsege (katere pravice veljajo za katere endpoint-e?)
  • multi-tenancy (kako se dosledno uveljavlja dodelitev najemnika?)
  • audit-logging (kdo je kdaj sprožil katero poslovno dejanje?)

Validacija vhodov, CORS in rate limiting

Validacija vhodov naj poteka večstopenjsko: sintaktično (tipi podatkov, JSON-struktura), poslovno (območja vrednosti, prehodi statusov) in varnostno pomembno (imena datotek, poti, headerji). Za brskalniške kliente je pomemben CORS (pravila, katere origin-e in headerje dovolite). CORS naj bo strogo omejen. Rate Limiting ščiti pred zlorabami in skoki obremenitev; pogosto se izvaja pri reverse proxyju in se dopolni z zalednimi omejitvami (maksimalna velikost telesa, timeoute, omejena paralelnost).

FireDAC in dostop do baze: stabilnost nastane z pravili

V REST-backendih je dostop do podatkovne baze pogosto prevladujoč dejavnik latence in stabilnosti. FireDAC nudi tehnične možnosti, a operativno varnost zagotovijo vodila.

Upravljanje povezav in sočasnost

Klasična napaka je globalno deljena podatkovna povezava, ki jo vzporedno uporablja več zahtevkov. V REST-strežniku z vzporednim izvajanjem (thready/workerji) mora biti jasno, kateri objekti so thread-safe in kateri niso. V praksi to pomeni: povezave in query-objekte upravljajte čisto na zahtevo oziroma na enoto dela (unit-of-work) ali uporabite kontrolirano poolanje, odvisno od modela strežnika. To zmanjša deadlocke, sporadične napake in težko reproducibilne težave.

Transakcije vzdolž use-case-ov

Transakcije sodijo v domeno: use-case odloči, kaj je atomarno skupaj. Pogosto je »ena zahteva = ena transakcija« smiselna, vendar ne vedno. Endpoint-i samo za branje pogosto ne potrebujejo eksplicitne transakcije, medtem ko pisni postopki zahtevajo konsistentne spremembe v več tabelah. Pri zunanjih integracijah (ERP, DMS, webhooki) so porazdeljene transakcije praviloma nerealistične; tukaj pomagajo jasne sekvence in kompenzacijska logika (kako se delni uspeh povrne?).

Timeoute, backpressure in kontrolirano propadanje

Brez timeoutov se zahteve, threadi in DB-povezave zadržujejo. Zato nastavite timeoute na HTTP- in DB-ravni. Dodatno je pomemben backpressure: omejite paralelnost in dolžine čakalnih vrst, da sistem pod obremenitvijo nadzorovano vrne 503 (Service Unavailable), namesto da z izčrpanjem virov popolnoma pade. Za obratovanje je hitra, jasna napaka boljša kot dolgotrajni zmrznitveni odzivi.

Payloadi, DTO-ji in dolgoročna kompatibilnost

JSON je standard, a interoperabilnost nastane v podrobnostih: formati datum/čas, časovne cone, null-vrednosti, prikaz decimalk, imena polj in kodiranje. Določite standard (npr. ISO-8601 v UTC) in ga dosledno uporabljajte.

DTO-ji namesto objave strukture baze

DTO-ji (Data Transfer Objects) so API-modeli podatkov, optimizirani za izmenjavo. Ne bi smeli zgolj zrcaliti tabel v bazi. Tako preprečite, da bi notranje spremembe sheme takoj povzročile prekinitve v API-ju. Poleg tega lahko nadzorujete, kateri interni elementi ne smejo uhajati navzven (npr. zastavice, audit-kolonke) in kako kasneje refaktorirati notranjost brez ogrožanja integracij.

Upoštevati idempotentnost in retries

V podjetniških omrežjih so timeouti in ponovitve običajni. Določite, katere operacije so idempotentne (večkratno izvajanje privede do istega rezultata) in kako preprečiti dvojne POST-e, na primer z idempotency-keyem za določene pisne operacije. To zmanjša podvojevanja, inkonsistentne statuse in podporne primere.

Dokumentacija in testi: OpenAPI kot skupna delovna osnova

API v B2B redko uporablja le ena ekipa. OpenAPI (Swagger) je praktičen skupni jezik, ker so specifikacije avtomatizirane: generiranje klientov, mocking, contract-testi in primerjava razlik med verzijami. Tudi če Delphi-stack ne generira vsega samodejno, se splača vzdrževana specifikacija kot osrednji artefakt.

Pragmatična testna pokritost, ki znižuje stroške obratovanja

Smiselna testna struktura za REST-storitev običajno zajema tri ravni:

  • Unit testi za domeno (brez HTTP, brez baze)
  • Integracijski testi za dostop do podatkov in transakcijsko vedenje (s testno bazo in reproducibilnimi seed-podatki)
  • API-/contract-testi proti zagnani storitvi (statusne kode, avtentikacija, obliko napak, verzioniranje)

Za administratorje in obratovalne ekipe šteje predvsem: testi morajo biti reproducibilni in ne smejo biti vezani na razvojna okolja. Bolj kot je testno okolje podobno končnemu uvajanju, manjše je tveganje presenečenj po posodobitvah.

Uvajanje in obratovanje: Windows-servis, Linux-servis, kontejnerji

REST-strežnik se v praksi šteje za »končan«, šele ko ga je mogoče stabilno upravljati: start/stop vedenje, rotacija logov, posodobitve, pravice, odpiranje portov, certifikati, monitoring in jasne možnosti rollback-a.

Windows- in Linux-servisi: preizkušeni operativni modeli

Pod Windows je upravljanje kot Windows-servis pogosto smiselno, ker so mehanizmi za start-type, recovery, pravice in monitoring že prisotni. Pod Linux se pogosto uporabi systemd-enota (systemd kot standardni service manager), ki nadzoruje restart-police, povezuje logging in ureja zaporedje zagona. Za obe okolji velja: reverse proxy spredaj poenostavi TLS, header-pravice, rate limiting in routing.

Kontejnerji: reproducibilno, a le s čisto ločitvijo stanja

Kontejnerji lahko poenostavijo uvajanja in pohitrijo rolloute. Predpogoj je jasna ločitev stanja: baza zunanja, datoteke v volumenih, skrivnosti preko secret-managementa. Brez te discipline nastanejo težko vzdržljivi mešani stanji, kar se pokaže ob motnjah ali pri obnovah.

Konfiguracija: sledljiva, ločena po okoljih, brez skrivnosti v repozitoriju

Konsistenten model konfiguracije pomaga: ločene nastavitve za dev/test/prod, centralna določitev nivojev logiranja, podatkov za povezavo z bazo, timeoute, dovoljenih origin-ov in ključev tokenov. Občutljive informacije ne sodijo v repozitorij izvorne kode. Za revizije in obratovanje je pomembno, da so spremembe konfiguracij sledljive in se lahko kontrolirano razširijo.

Observability: logi, metrike in tracing kot pogoj za obratovanje

Ko integracije zastanejo, mora obratovanje dobiti odgovore: kateri endpoint-i so prizadeti, od kdaj, s kakšno stopnjo napak in katera odvisnost je počasna? Brez observability postane vsaka motnja ročno detektivsko delo.

Strukturirani logi in Correlation-ID-ji

Strukturirani logi (key/value ali JSON) omogočajo analize s pomočjo orodij in olajšajo filtriranje po endpointu, najemniku, kodi napake ali Correlation-ID. Vsak zahtevek naj dobi Correlation-ID, ki se vrne tudi v headerju odgovora. Senzitivnih podatkov, kot so gesla, tokeni ali osebni podatki, ne smete logirati; tukaj pomagajo maskiranje, hashing ali ciljno omogočeni debug-logi v izoliranih okoljih.

Metrike za kapaciteto in stabilnost

Praktično preverjene metrike so hitrost zahtevkov, latenčnosti (npr. p95/p99), stopnje napak po endpointu, časi v bazi, število aktivnih workerjev/threadov, izkoriščenost povezav in dolžine čakalnih vrst. Ti podatki so osnova za načrtovanje kapacitet in pomagajo zaznati počasi nastajajoče težave (manjkajoči indeksi, nove odvisnosti, neugodni poti poizvedb).

Pot modernizacije: REST kot stabilna meja za rastoče Delphi-sisteme

V mnogih Delphi-okoljih ni REST-API končno stanje, temveč gradnik za stabilnost in modernizacijo. Preverjen, nizek-rizični postopek je postopno izvajanje:

  1. Prioritizirati use-case-e: katere funkcije morajo biti zunaj dostopne (osnovni podatki, spremembe statusov, dostop do dokumentov, odobritve)?
  2. Uvesti API-standarde: avtentikacija, obliko napak, verzioniranje, logging, timeoute, rate limite, OpenAPI.
  3. Izluščiti domeno: poslovno logiko strukturirati tako, da ni vezana na UI ali posamezne endpoint-e.
  4. Konsolidirati dostop do podatkov: pravila FireDAC, koncept transakcij, performančni merilniki, politike poizvedb.
  5. Potrošnike postopoma preusmeriti: desktop, portali in druge storitve naj uporabljajo API; neposredni dostopi do baze zmanjšati.

Rezultat je sistem, ki ga je mogoče postopoma nadgrajevati: moduli se dajo prenoviti brez, da bi spremembe nenadzorovano segle v vse kliente.

Tipične pasti v B2B-REST-projektih

Nekatera težavna stanja se pojavljajo pogosto in jih je z jasnimi pravili mogoče dobro preprečiti:

  • Neenotna oblika napak: podpora in integracija postaneta nepotrebno zahtevni. Rešitev: standardiziran objekt napake s stabilnimi kodami.
  • Varnost kot dodatek: vloge, večnajomniška podpora in audit se »dodatno« implementirajo kasneje. Rešitev: načrtovati kot osnovno strukturo, ne improvizirati po endpointih.
  • Brez omejitev: manjkajoče omejitve telesa, timeoute in meje paralelnosti vodijo v izpade pod obremenitvijo. Rešitev: reverse proxy in zaledni backpressure.
  • Pretesna vezava baze na API: vsaka sprememba sheme zlomi potrošnike. Rešitev: DTO-ji in jasno definirani use-case-i.
  • Premalo opazovanja: težav ni mogoče izmeriti. Rešitev: Correlation-ID-ji, strukturirani logi, ključne metrike.

Zaključek: REST z Delphi pomeni odgovornost za vmesnik in obratovanje

Razviti REST-strežnik z Delphi je v podjetniških okoljih trajnostno uspešno, kadar sta arhitektura in obratovanje načrtovana skupaj od začetka. Izbira frameworka (WebBroker, Horse, RAD Server ali migracijska pot iz DataSnap) je pomembna, vendar ni največji vzvod. Ključ naredijo jasni standardi za oblikovanje API-ja, avtentikacijo, ravnanje z napakami, verzioniranje, FireDAC-dostop do podatkov, timeoute ter observability in uvajanje kot Windows- ali Linux-servis. Tako vmesnik postane stabilen integracijski gradnik, ki omogoča modernizacijo, namesto da bi jo zaviral.

V strokovnem kontekstu imajo Delphi REST-API in Delphi REST-API in REST-strežnik pomembno vlogo, kadar morajo integracije, tokovi podatkov in nadaljnji razvoj delovati brezhibno skupaj.

Projekt ali modernizacijski podvig z Net-Base razpravljati.

Naslednji korak

Ko se tema spremeni v dejanski projekt, je treba arhitekturo, obstoječi sistem in obratovanje zgodaj obravnavati skupaj.

Ne podpiramo le pri posameznih vprašanjih, ampak tudi takrat, ko iz izrezkov izvorne kode, legacy-tem ali idej za portale nastane zanesljiv podjetniški projekt.

  • Obstoječe stanje, ciljno stanje in tehnična tveganja se ocenjujejo skupaj.
  • REST, dostop do podatkov, portali in uvedba niso prestavljeni kot poznejše posledice.
  • Zgodaj prepoznate, katera pot je ekonomsko in obratovalno vzdržna.

Deli objavo

Deli ta prispevek neposredno

LinkedIn, X, XING, Facebook, WhatsApp in e-pošta so takoj na voljo. Za Instagram bomo neposredno pripravili povezavo in kratek opis.

E-pošta

Instagram se odpre v novem zavihku. Povezava in kratek opis se pred tem kopirata v odložišče.