Net-Base Časopis

13.04.2026

Razvijanje REST-poslužitelja s Delphiem: arhitektura, sigurnost i rad u praksi

Razvoj REST-servera s Delphi: provjera zabluda za vodstvo IT-a i administratore. Tako planirate API-ugovor, sigurnost, pristup podacima, Reverse Proxy, observability i rollout – bez zamke za održavanje.

13.04.2026

Od teme magazina do projektne prakse

Povezane stranice usluga i tehnologije za članak

Video-Botschaft

Razvijanje REST-poslužitelja s Delphiem: arhitektura, sigurnost i rad u 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.

Isto često pogrešno procjenjujemo neposredno prije početka projekta — arhitektura i suradnja: „Moramo samo brzo razviti REST-server s Delphi. Nekoliko endpointa, malo JSON‑a — to je pod kontrolom.” To zvuči kao jasno, malo radno zaduženje. Skupo obično postane tek nakon Go-livea, kad integracije „povremeno“ zakažu, narudžbe se pojave dvostruko ili je reverse proxy u monitoringu označen zeleno, dok je poslovni odjel već blokiran.

REST izgleda jednostavno zato što prvi zahtjev brzo vraća odgovor. U digitalnim poslovnim rješenjima ipak nije mjerilo prvi zahtjev, nego rad nakon desetog izdanja: stabilna semantika, sigurna autorizacija, kontrolirano ponašanje pri opterećenju i sposobnost dijagnostike kad je uključeno više sustava. Delphi može za to biti praktična platforma. Trošak nije „više programiranja“, nego više odluka koje se moraju rano i obvezujuće donijeti — kao ugovor o sučelju, a ne kao igralište za frameworke.

Ovaj provjeritelj pogrešaka ispituje što je u tvrdnji „brzo gotovo“ pojednostavljeno, gdje postoji razuman izuzetak i kako iz toga izvesti konkretnu proceduru. U fokusu su posljedice za arhitekturu i operacije: sigurnost, podaci, stabilnost sučelja, rollout i podrška.

Provjera pogrešaka: „Izabrati framework, izgraditi endpointe, gotovo“

U mnogim timovima rasprava započinje oko WebBroker, DataSnap, RAD Server ili laganih REST‑frameworka. Taj izbor je važan — ali rijetko ključan. Ključno je pitanje hoćete li poprečne teme definirati toliko čvrsto da kasnije ne nastane situacija u kojoj svaki endpoint razvije svoja pravila.

Iz perspektive operacija i administracije pet tema najviše troši resurse i nosi rizik: Autentikacija/Autorizacija, format pogrešaka i statusni kodovi, verzioniranje/deprecacija, timeouti/zaštita od opterećenja te observabilnost (strukturirani logovi, metrike, opcionalno tracing). Ako te vodilje nedostaju, nastaje skup pojedinačnih endpointa koji u testu „nekako“ funkcioniraju, ali su u radu teško upravljivi.

Dokument proizvođača za DataSnap pokazuje da Delphi donosi strukture za izradu REST‑servera i pritom adresira Authentication/Authorization kao predviđenu značajku.[Quelle] Time je potvrđena izvedivost. Granica ostaje: iz toga još ne slijedi operativni koncept. Praktičan zaključak: koristite wizarde i biblioteke rado za start, ali planirajte sigurnost, standarde pogrešaka, ograničenja i monitoring kao zasebne, testabilne radne pakete.

Razvijanje REST-servera s Delphi: koja tehnička odluka doista odlučuje

Za IT-upravu i odgovorne za projekte ključno je koliko se dobro ponašanje i rad sustava mogu kontrolirati: Možete li jasno prikazati detalje Reverse-Proxyja? Mogu li se pravila presjeka centralno nametnuti? Je li put nadogradnje planiran? I: može li se sustav održavati s vještinama koje su zaista dostupne u organizaciji?

WebBroker: blizu HTTP-modelu, dobar za kontrolirano ponašanje

WebBroker ostaje blizu protokolu (Request/Response, headeri, statusni kodovi). To je u korporativnom radu često prednost jer možete detalje čvrsto kontrolirati: timeouti, obrada headera, ograničenja sadržaja, odgovori na pogreške. Cijena je disciplina: routing, jedinstvena obrada pogrešaka, provjere autentikacije i logging moraju se dosljedno standardizirati — inače dolazi do razrasta nereda preko endpointa.

Middleware-pristupi (npr. Delphi Horse): standardi se centralno provode

Middleware znači: ponavljajući koraci se izvode centralno, a ne u svakom endpointu. To podržava governance: autentikacija, Correlation-ID, strukturirani logovi, ograničenja brzine ili validacija zahtjeva implementiraju se jednom i potom su „neporecivi“. S operativne strane važno je da middleware ne postane crna kutija. U incidentu mora biti vidljivo je li zahtjev zakazao pri autentikaciji, validaciji, routingu ili poslovnoj logici — i kako se to iskazuje u logu.

RAD Server: prije životni ciklus platforme nego „samo REST“

RAD Server manje je „mali REST-projekt“, a više odluka o platformi. To može imati smisla ako namjerno želite upravljati okruženjem s njegovim komponentama i životnim ciklusom. Za tanji sloj integracije lakši stack dugoročno može stvoriti manje vezanosti. Presudno je može li vaša organizacija trajno podnijeti održavanje platforme (ažuriranja, sigurnosne zakrpe, operativno znanje).

DataSnap: poštovati postojeće sustave, novu izradu razborito procijeniti

DataSnap je često prisutan u uhodanim Delphi-landskapima. Embarcadero-dokument potvrđuje osnovno REST-Server-kreiranje i predviđene sigurnosne značajke.[Izvor] Za novu razvojnu aktivnost ipak vrijedi pitanje: odgovara li pristup vašim standardima (OpenAPI kao artefakt ugovora, verzioniranje, observability, reverse-proxy konfiguracija, reproducibilno deployment)? Ako zbog toga morate izgraditi dodatne slojeve, to nije kriterij za odbacivanje — ali mora ući u procjenu napora, ne u nadu.

Die praktisch relevante Ausnahme: Wann „schnell ein Endpunkt“ trotzdem funktioniert

Postoje realne situacije s vremenskim pritiskom: zamjena datotečne sučelja, pilot za portal, integracija partnera s fiksnim rokom. Izuzetak funkcionira kada „brzo“ ne znači „bez standarda“. Minimalno znači: osnovni skup pravila koji vrijedi od prvog dana i koji kasnije ne mora biti izvađen.

API-Design als Betriebsdisziplin: Fehler, Versionierung, Idempotenz

Mnogi REST-projekti ne propadaju zbog nedostatka funkcije, već zbog nejasne semantike. Dva sustava mogu istu JSON-strukturu različito interpretirati. U testnim okruženjima to se rijetko primijeti, jer se najčešće provjerava jedan klijent protiv poslužitelja — a ne krajolik koji uključuje portal, ERP/CRM, batch, spremište dokumenata i vanjske partnere.

Fehlerbilder: stabil und maschinenlesbar statt kreativ

U radu je važno da se pogreške mogu automatski obraditi. Klijent mora razlikovati: autentikacija neuspjela (401/403), konflikt (409), validacija (često 422), resurs nije pronađen (404), greška poslužitelja (5xx). Za podršku i operacije potrebna je Correlation-ID da se poveže zahtjev i aktivnosti u backendu. Ako to standardizirate, vrijeme dijagnostike značajno pada: manje „ne radi“, više „pogreška kod X na endpointu Y s Correlation-ID Z“.

Versionierung: Change-Management, nicht nur URL-Design

Verzioniranje je u korporativnim okruženjima prije svega organizacijski proces. Tehnički je verzioniranje preko URL-a (npr. /api/v1) često najjednostavnije za upravljanje jer reverse proxy, rutiranje, dokumentacija i firewall pravila ostaju jasni. Bitnije od sheme je pravilo: kompatibilno proširivanje (dodavanje novih polja, nepreoblikovanje postojeće semantike) i breaking change samo uz prozor za deprecaciju, jasnu migracijsku pomoć i podatke o korištenju po endpointu. Bez podataka o korištenju deprecacija je letenje na slijepo.

Idempotenz: die unsichtbare Versicherung gegen Retries

Mreže isteknu. Klijenti ponavljaju zahtjeve. Load Balanceri prekidaju veze. Bez strategije idempotencije nastaju duplicirani poslovni procesi – često bez vidljive pogreške. Rješenje su ključevi idempotencije za odabrane POST slučajeve upotrebe ili funkcionalno prepoznavanje duplikata (npr. vanjski broj dokumenta, kombinacija naručitelja + referenca). Koja varijanta odgovara ovisi o procesu. Potpuni izostanak pravila ostavlja rizik koji se obično očituje tek pod stvarnim opterećenjem i stvarnim incidentima.

Architekturfolgen: Schichten trennen, damit Änderungen planbar bleiben

Ein REST-Endpunkt ist Transportlogik, nicht die Domäne. Wenn beides vermischt wird, wird jede Schnittstellenänderung zum Risiko für Fachlogik – und jede fachliche Regeländerung zum Risiko für Integrationen. Für langlebige Business-Software bewährt sich eine Trennung, die auch im Betrieb gut erklärbar ist:

  • Transport-Schicht: HTTP, Auth, Validierung, Antwort-/Fehlerformat, Correlation-ID.
  • Domänenschicht: fachliche Use-Cases (Statuswechsel, Freigaben, Buchungen), Regeln, Transaktionsgrenzen.
  • Persistenz/Integration: Datenbankzugriff (z. B. BDE-zamjena s nativnim povezivanjem), externe Systeme (ERP, DMS, Mail, Queue/Broker).

Das ist keine akademische Übung. Es entscheidet, ob Sie später einen zweiten Consumer anbinden können, ohne Logik zu duplizieren. Und es entscheidet, ob Security- und Logging-Regeln zentral bleiben oder pro Endpunkt auseinanderlaufen.

Security im realen Setup: Reverse Proxy, TLS, Tokens, Audit

Ein REST-Service erweitert die Angriffsfläche, weil Prozesse und Daten über HTTP erreichbar werden. Häufige Probleme sind nicht „fehlendes TLS“, sondern Details: falsch ausgewertete Client-IP, zu breite Berechtigungen, zu lange Token-Laufzeiten, unkontrollierte CORS-Regeln oder Logs, die mehr preisgeben als nötig.

TLS am Reverse Proxy: Verantwortlichkeiten und Header-Regeln klären

In vielen Umgebungen terminiert TLS (Transport Layer Security) am Reverse Proxy, etwa nginx oder einem Load Balancer. Das vereinfacht Zertifikatsmanagement und zentrale Policies. Dann muss die Anwendung das ursprüngliche Protokoll und die echte Client-IP korrekt erkennen. Wenn Forwarded-Header (Forwarded oder X-Forwarded-*) unkontrolliert ausgewertet werden, kippen Security- und Support-Funktionen: Rate Limiting, Audit-Auswertungen und IP-basierte Regeln werden unzuverlässig oder angreifbar. Praktische Folgerung: Definieren Sie, welchen Proxy-Pfad Sie als vertrauenswürdig ansehen, und behandeln Sie Header von außen als potenziell manipuliert.

JWT, API-Keys, SSO: entscheidend ist der Lifecycle

JWT (JSON Web Token) je raširen format tokena, često u OIDC-setupima (OpenID Connect, standard na bazi OAuth2). API-ključevi su u integracijama sustav‑sa‑sustavom uobičajeni, pod uvjetom da su rotacija, deaktivacija i scope jasno uređeni. U obje situacije odlučuje operacija: gdje su secrets? Kako rotiraju ključevi bez downtimea? Kako oduzmete pristup u incidentu? I kako provjeravate role/scope tako da se prava ne povećavaju „slučajno“?

Net-Base-stranica tematike svrstava REST-servere kao sloj povezivanja koji treba prikazivati pravila poput rola, odobrenja (Freigaben/Approvals), validacije i promjena statusa – a ne kao puku CRUD‑prosljeđivanje podataka.[Quelle] To pogađa suštinu: ako vaša API pokreće poslovne akcije, trebate autorizaciju na razini use‑casea (ne samo „korisnik je ulogiran“) te audit‑informacije (tko, kada, koja akcija), kako bi se procesi u spornom slučaju mogli rekonstruirati.

Audit und Datenschutz: weniger Nutzdaten loggen, mehr Kontext loggen

Za podršku i usklađenost rijetko je potrebno zapisivati kompletne korisničke podatke u log. Korisnije je zapisivati kontekst: Correlation‑ID, Mandant/Client, identitet (korisnik ili servis), endpoint, statusni kod, latencija, kod greške. Osjetljivi sadržaji (tokeni, osobni podaci, dokumenti) ne pripadaju u standardni log. Ako je potrebno debug‑logiranje, treba ga vremenski ograničiti, jasno odobriti i organizacijski osigurati.

Datenzugriff (z. B. FireDAC): Stabilität entsteht durch Leitplanken

U mnogim REST‑servisima baza podataka je usko grlo – i istovremeno komponenta koju je u incidentu najteže „vidjeti“. BDE-Ablosung mit nativer Anbindung je kao sloj pristupa podacima raširen u Delphi. Hoće li operacija ostati mirna ne odlučuje ime, nego međusobno djelovanje paralelizma, rukovanja konekcijama, granica transakcija i pragova.

Verbindungen und Parallelität: keine global geteilten Objekte

REST‑server obrađuje zahtjeve paralelno. Ako se konekcije ili objekti upita nekontrolirano dijele, nastaju sporadične greške, deadlockovi ili nekonzistentni rezultati koji se u testu teško reproduciraju. Definirajte što znači jedinica rada po zahtjevu: trajanje konekcije, granice transakcije, čisto oslobađanje. Ako se koristi pooling, trebaju postojati limiti – inače opterećenje nadvlada resurse.

Transaktionen nach Use-Case, nicht nach Tabellen

„Jedan zahtjev = jedna transakcija“ često je smisleno, ali nije univerzalno. Operacije čitanja često ne trebaju eksplicitnu transakciju, dok pisani use‑caseovi zahtijevaju jasnu atomarnost. Ako su uključeni vanjski sustavi (DMS‑upload, ERP‑poziv, webhook), raspodijeljene transakcije su rijetko realistične. U tom slučaju trebate redoslijed, jasnu klasifikaciju pogrešaka (ponovljivo vs. neponovljivo) i eventualno kompenzacijsku logiku, umjesto pristupa „to će nekako proći“.

Timeouts und Backpressure: kontrolliert scheitern statt hängen

Bez timeouta zahtjevi, dretve i DB‑konekcije se zaguše. Postavite timeouta na HTTP i DB razini i ograničite paralelnost. Backpressure znači: sustav ne prima neograničen broj istovremenih poslova, nego kontrolirano signalizira preopterećenost (tipično 503). To je u radu gotovo uvijek bolje od postupnog potpunog zastoja koji se „riješi“ samo restartom.

Vergleich: Entscheidungen, die Support und Betrieb spürbar verändern

Odluka Tipični „brzi“ pristup Operacijski otporna varijanta Utjecaj u svakodnevici
Obrada pogrešaka Slobodni tekst/Exceptions, promjenjivi statusni kodovi Standardni objekt pogreške + stabilni kodovi + Correlation-ID Brža dijagnostika, bolja kvaliteta tiketa, manje nagađanja
Autentifikacija Jedan ključ za sve, rotacija „kasnije“ Scopes/uloge, rotacija/oduzimanje kao proces, kratke valjanosti gdje je moguće Omogućena reakcija na incidente, prava rastu manje nekontrolirano
Model podataka Tablice 1:1 kao JSON DTO-ovi sa stabilnom semantikom, interno odvojeni DB-migracije rjeđe prekidaju integracije, promjene postaju planiranije
Ponašanje pod opterećenjem Nema ograničenja, „radi u testu“ Request-Limits, Timeouts, ograničeni Worker/Queues Pod opterećenjem servis degradira kontrolirano umjesto da potpuno otkaže
Observabilnost Samo tekstualni logovi, nema metrika Strukturirani logovi, metrike (latencija/greške/vrijeme DB-a), jasni dashboardi Uzroci postaju brže vidljivi, On-Call postaje lakše upravljiv

Konkretan pristup: Kako će REST-Service u 30–60 dana postati operativno „stvaran“

Redoslijed je odabran tako da rano nastane stabilan ugovor i upravljiva baza, čak i ako poslovna logika još raste. Ti koraci ne ovise o određenoj Delphi-REST-tehnologiji, već o vašoj operativnoj stvarnosti.

  1. Definirati ugovor sučelja: resursi, statusni kodovi, objekt pogreške, format datuma/vremena, konvencije za paginaciju/filtere, maksimalne veličine payloada.
  2. Definirati osnovu sigurnosti: metode autentifikacije, uloge/Scopes, rotacija tokena/ključeva, provjera tenant-a, CORS pravila (ako su browser-klijenti), audit događaji.
  3. Postaviti Reverse-Proxy- und Netzwerkregeln: TLS-terminacija, rukovanje Forwarded-headerima, Rate Limiting, WAF-pravila (ako postoje), interna dostupnost samo iz definiranih mreža.
  4. Granice pristupa podacima: Unit-of-Work/transakcijska pravila, DB-Timeouts, vezivanje parametara, granice paralelizma, strategija za Deadlocks/Timeouts.
  5. Implementirati Observability: Correlation-ID end-to-end, strukturirani logovi, metrike (npr. latencija, stopa grešaka, vrijeme DB-a), Health-Checks.
  6. Standardizirati Runbook i Deployment: Windows- und Linux-Services ili systemd, Restart-Policy, Log-Rotation, izvori konfiguracije, Rollback, ovisnosti (DB, Secrets, Proxy).
  7. Pilotni pogon s rubnim slučajevima: simulacija Timeouta, vrhovi opterećenja, isteka tokena, restart DB-a, restart Proxy-ja, planirani prozori održavanja uključujući kanal komunikacije.

Realnost Rollout-a: Windows, Linux, Container – i gdje leže granice

REST-Service je isporučiv tek kada se može ponovljivo raspoređivati i vraćati. Pod Windows je upravljanje kao Windows- und Linux-Services često najlogičnije (Recovery, Starttyp, koncept prava). Pod Linux je systemd standard (Restart-Policies, Logging, Startreihenfolge). Containeri mogu ujednačiti implementacije, ali samo ako jasno odvojite state: baza podataka izvana, datoteke u volumenima, Secrets putem Secret-Managementa. Inače probleme samo premještate u drugi format.

Treba otvoreno naznačiti granicu: ako u poduzeću ne postoji pouzdan operativni model za kontejnere (Registry, Image-Scanning, Secrets, Observability, mreža), izjava „mi sve kontejneriziramo“ ne smanjuje automatski rizik. VM-ovi plus Reverse Proxy i dobro definirano upravljanje uslugama često su bolja međufaza dok se ne izgradi kompetencija platforme.

Priprema rasta bez prekomjerne izgradnje

Mnogi REST-servisi započinju kao integracijski most i kasnije postaju središnji API-sloj između portala, ERP/CRM, DMS i partnera. Dvije pripreme koštaju malo na početku, ali kasnije štede rasprave i prekide:

  • OpenAPI kao zajednički artefakt: ne kao dekoracija, već kao ugovor za klijente, testove i difove između verzija.
  • API-Governance u malom: pravila deprecacije, metrike korištenja po endpointu, jasna odgovornost i „Definition of Done“ za produkcijske integracije.

Tako se „REST“ pretvara iz brzog integracijskog hacka u upravljivo sučelje koje u svakodnevnom radu ne zahtijeva stalno posebno postupanje.

Mit se razotkriva u pogonu – upravo tamo trebate djelovati

Izjava „REST ist schnell erledigt“ opstaje jer prvi endpoint brzo odgovori. Korisnost nastaje tek kada se support-slučajevi mogu jasno klasificirati, promjene ne ruše integracije, tokeni i Secrets se mogu rotirati i vršne opterećenja ne dovode do zastoja. Tada iz „HTTP+JSON“ nastaje pouzdan sloj povezivanja.

Delphi u tome nije ni rizik niti „slobodna karta“. To je kutija alata koja može dobro odgovarati u zrelim korporativnim okruženjima – osobito kada poslovna logika i pristup podacima već postoje u postojećem sustavu i REST-sloj tu logiku čisto čini dostupnom za portale i integracije.[Quelle] Presudno je hoćete li servis postaviti kao ugovor s odgovornošću za operacije i ne ostaviti poprečne teme za „kasnije“.

Ako želite strukturirano razvrstati zahtjeve, operativni model i sigurnosni okvir za REST-integracije ili modernizaciju postojeće Delphi-okoline, kratak Scoping-Gespräch često je najbrži put do pouzdanih odluka.

Izvori i daljnje informacije

Stručne temeljne tvrdnje uređivački su kontekstualizirane na temelju sljedećih vanjskih izvora.

  1. REST Servers in Delphi XE Using DataSnap (www.embarcadero.com)
    Delphi/DataSnap pruža strukture za izradu REST-servera i predviđa značajke poput Authentication/Authorization, ali nije potpun operativni model sam po sebi.
  2. Net-Base-consulting-gmbh.de (Net-Base-consulting-gmbh.de)
    REST-serveri se shvaćaju kao sloj povezivanja koji ne samo da isporučuje podatke, nego modelira pravila poput uloga, odobrenja/validacije i promjena statusa.
  3. Poslovni softver s Delphi i C# | Net-Base (net-base-software-gmbh.de)
    Net-Base se pozicionira, između ostalog, s Delphi/C# za poslovni softver uključujući REST-servere i okruženja usluga, bez tvrdnji o konkretnim projektnim brojkama.

Za ovu temu su također važni Delphi REST-API i REST-Server i Delphi REST-API. Članak ove aspekte jasno kontekstualizira i pokazuje na što treba obratiti pažnju u svakodnevnom radu.

Razgovarajte o projektu ili modernizacijskom zahvatu s Net-Base.

sljedeći korak

Ako se tema pretvori u stvarni projekt, arhitekturu, postojeće sustave i operacije trebalo bi rano zajednički razmotriti.

Podržavamo vas ne samo u pojedinačnim pitanjima, već i kada iz isječaka izvornog koda, naslijeđenih sustava ili ideja za portale treba nastati pouzdan poslovni projekt.

  • Postojeće stanje, ciljna slika i tehnički rizici procjenjuju se zajedno.
  • REST, pristup podacima, portali i rollout neće biti odgođeni kao naknadne posljedice.
  • Rano prepoznajete koji je put ekonomski i operativno održiv.

Podijeli objavu

Izravno proslijedite ovu objavu

LinkedIn, X, XING, Facebook, WhatsApp i e-pošta su odmah dostupni. Za Instagram odmah pripremamo poveznicu i kratak tekst.

E-pošta

Instagram se otvara u novoj kartici. Link i kratki tekst se prethodno kopiraju u međuspremnik.

Napišite komentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert