Net-Base Magazín

13.04.2026

Vývoj REST serveru v Delphi: architektura, bezpečnost a provoz v praxi

REST-server s Delphi vyvíjet: Kontrola omylů pro vedení IT a administrátory. Tak naplánujete API kontrakt, bezpečnost, přístup k datům, Reverse Proxy, observabilitu a nasazení – bez údržbové pasti.

13.04.2026

Od tématu magazínu k projektové praxi

Vhodné stránky služeb a technické stránky k příspěvku

Video-Botschaft

Vývoj REST serveru v Delphi: architektura, bezpečnost a provoz v praxi

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.

Omyl se často objeví těsně před zahájením projektu — architektura a spolupráce: „Musíme jen rychle vyvinout REST-Server s Delphi. Několik endpointů, trochu JSONu – to je přece přehledné.“ Zní to jako jasný, malý pracovní balíček. Draho to většinou začne být až po go‑live, když integrace „sporadicky“ selhávají, objednávky se objeví dvojitě nebo je Reverse Proxy v monitoringu zelená, zatímco příslušné oddělení je už dávno zablokované.

REST působí jednoduše, protože první request rychle vrátí odpověď. V digitálních podnikovch řešeních však nezáleží na prvním requestu, ale na provozu po desátém releasu: stabilní sémantika, bezpečná autorizace, kontrolované chování při zátěži a diagnostická schopnost, když je zapojeno více systémů. Delphi může být pro to praktickou platformou. Cena není „více programování“, ale více rozhodnutí, která musí být učiněna včas a závazně – jako smlouva rozhraní, ne jako hřiště pro frameworky.

Tento Irrtum‑Check prověřuje, co je na tvrzení „rychle hotovo“ příliš jednoduché, kde existuje smysluplná výjimka a jak z toho odvodit konkrétní postup. V centru pozornosti jsou architektonické a provozní důsledky: bezpečnost, data, stabilita rozhraní, rollout a podpora.

Kontrola omylů: „Vybrat framework, postavit endpointy, hotovo“

V mnoha týmech začíná diskuse u WebBrokeru, DataSnapu, RAD Serveru nebo u lehkých REST‑frameworků. Tento výběr je důležitý – ale málokdy je jádrem. Jádrem je, zda pevně ukotvíte průřezová témata tak, aby každý endpoint později nevytvořil vlastní soubor pravidel.

Z pohledu provozu a administrace zvyšuje náklady a riziko především pět témat: autentizace/autorizace, formát chyb a stavové kódy, verzování/deprekace, timeouty/ochrana proti zátěži a observabilita (strukturované logy, metriky, volitelně tracing). Chybějí‑li tyto vodítka, vznikne sbírka jednotlivých endpointů, které v testu „nějak“ fungují, ale v provozu se těžko řídí.

Dokument výrobce k DataSnapu dokládá, že Delphi přináší struktury pro vytváření REST‑serverů a přitom adresuje autentizaci/autorizaci jako plánovanou funkci.[Quelle] To objasňuje proveditelnost. Omezení zůstává: z toho ještě nevyplývá provozní koncept. Praktický závěr: Průvodce a knihovny využijte rádi pro start, ale naplánujte bezpečnost, standardy chyb, limity a monitoring jako samostatné, testovatelné pracovní balíčky.

Vyvíjet REST-server s Delphi: které technické rozhodnutí skutečně záleží

Pro vedení IT a projektově odpovědné osoby je rozhodující, jak dobře lze chování a provoz ovládat: Dokážete přesně zobrazit detaily reverzního proxy? Lze průřezová pravidla vynutit centrálně? Je cesta upgradu plánovatelná? A: Lze systém provozovat se dovednostmi, které jsou v organizaci reálně dostupné?

WebBroker: blízko HTTP modelu, vhodný pro kontrolovatelné chování

WebBroker zůstává blízko protokolu (Request/Response, Header, Statuscodes). To je v podnikových provozech často výhoda, protože tak dostanete pod kontrolu detaily: vypršení časových limitů, zpracování headerů, limity obsahu, chybové odpovědi. Cenou je disciplína: směrování, chybové obálky, kontroly autorizace a logování musí být konzistentně standardizovány – jinak vznikne chaos napříč endpointy.

Middleware-Ansätze (z. B. Delphi Horse): Standards zentral erzwingen

Middleware znamená: opakující se kroky běží centrálně, ne v každém endpointu. To podporuje governance: autentizace, Correlation-ID, strukturované logy, rate-limity nebo validace požadavků se implementují jednou a poté jsou „nevyjednatelné“. Pro provoz je důležité, aby middleware nepřestala být černou skříňkou. V incidentu musí být vidět, zda požadavek selhal na autentizaci, validaci, routingu nebo obchodní logice – a jak se to projeví v logu.

RAD Server: spíše životní cyklus platformy než „pouze REST“

RAD Server není tolik „malý projekt REST“, ale rozhodnutí pro platformu. To může dávat smysl, pokud chcete vědomě provozovat prostředí se svými stavebními bloky a životním cyklem. Pro úzkou integrační vrstvu může lehčí stack dlouhodobě způsobit menší závislost. Rozhodující je, zda vaše organizace chce trvale nést péči o platformu (aktualizace, bezpečnostní záplaty, provozní znalosti).

DataSnap: respektovat stávající komponenty, nový vývoj střízlivě posoudit

DataSnap se často vyskytuje v existujících Delphi-prostředích. Embarcadero-papír dokládá základní REST-server-vytváření a plánované bezpečnostní funkce.[Zdroj] Pro novou vývoj však platí: Hodí se přístup do vašich standardů (OpenAPI jako smluvní artefakt, versionování, Observability, nastavení Reverse Proxy, reprodukovatelné nasazení)? Pokud pro to musíte postavit dodatečné vrstvy, není to důvod k vyloučení — ale patří to do odhadu pracnosti, ne do naděje.

Prakticky relevantní výjimka: kdy „rychlý endpoint“ přesto funguje

Existují reálné situace s časovým tlakem: náhrada souborového rozhraní, pilot pro portál, integrace partnera s přísným termínem. Výjimka funguje, pokud „rychle“ neznamená „bez standardů“. Minimum pak znamená: základní soubor pravidel, která platí od prvního dne a později nemusí být z projektu vyřazována.

Návrh API jako provozní disciplína: chyby, versionování, idempotence

Mnoho REST projektů nezkrachuje kvůli chybějící funkci, ale kvůli nejasné semantice. Dva systémy mohou tutéž JSON strukturu interpretovat odlišně. V testovacích prostředích si toho málokdy všimnete, protože se obvykle testuje consumer proti serveru — nikoli celá krajina z portálu, ERP/CRM, batchů, úložiště dokumentů a externích partnerů.

Chybové vzory: stabilní a strojově čitelné místo kreativních řešení

V provozu záleží na tom, aby se chyby daly automatizovaně vyhodnocovat. Klient musí rozlišit: autentizace selhala (401/403), konflikt (409), validace (často 422), resource nenalezen (404), chyba serveru (5xx). Pro support a provoz je potřeba Correlation-ID pro propojení requestu a backendových aktivit. Pokud to standardizujete, doba diagnostiky citelně klesne: méně „nejde to“, více „chyba kódu X na endpointu Y s Correlation-ID Z“.

Versionierung: Change-Management, nikoli jen návrh URL

Versionování je v podnikových prostředích především organizační proces. Technicky je verzování v URL (např. /api/v1) často nejsnadnější na provozování, protože Reverse Proxy, routování, dokumentace a pravidla firewallu zůstávají přehledné. Důležitější než schéma je pravidlo: rozšiřovat kompatibilně (doplnit nová pole, neměnit stávající sémantiku) a breaking changes dělat jen s deprecační lhůtou, jasnou migrační pomocí a údaji o využití pro každý endpoint. Bez údajů o využití je deprekování naslepo.

Idempotence: neviditelné pojištění proti opakovaným pokusům (Retries)

Sítě vyprší (timeout). Klienti opakují požadavky. Load Balancery přerušují spojení. Bez strategie idempotence vznikají duplicitní doménové operace – často bez zjevné chyby. Řešením mohou být Idempotency-Keys pro vybrané POST-Use-Cases nebo doménová detekce duplicit (např. externí číslo dokladu, kombinace zadavatel + reference). Která varianta sedí, závisí na procesu. Bez pravidla zůstává riziko, které se většinou projeví až při reálné zátěži a skutečných poruchách.

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, autentizace, validace, formát odpovědi/chyby, Correlation-ID.
  • Domänenschicht: doménové Use-Cases (změny stavu, schválení, zaúčtování), pravidla, hranice transakcí.
  • Persistenz/Integration: přístup k databázi (např. BDE-náhrada s nativním napojením), externí systémy (ERP, DMS, mail, queue/broker).

To není akademická cvičení. Rozhoduje to o tom, zda později připojíte druhého Consumera bez duplikace logiky. A rozhoduje to, zda bezpečnostní a logovací pravidla zůstanou centrální, nebo se budou po jednotlivých endpointch rozcházet.

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 rozšířený formát tokenu, často v OIDC nasazeních (OpenID Connect, standard založený na OAuth2). API‑klíče jsou běžné v integracích systém‑to‑system, pokud je rotace, deaktivace a scope jasně řízeno. V obou případech rozhoduje provoz: Kde jsou secrets? Jak rotují klíče bez downtime? Jak odjmete přístup při incidentu? A jak ověřujete role/scopy tak, aby se práva „náhodou“ nerozrůstala?

Jedna Net-Base‑stránka tematicky řadí REST‑servery jako integrační vrstvu, která má zobrazovat pravidla jako role, schválení/approvals, validaci a změny stavu – ne jen jako čisté předávání CRUD dat.[Zdroj] To jde k jádru: pokud vaše API spouští fachliche akce, potřebujete autorizaci na úrovni Use Case (ne pouze „uživatel je přihlášen“) a auditní informace (kdo, kdy, která akce), aby byly procesy v případě sporu dohledatelné.

Audit und Datenschutz: weniger Nutzdaten loggen, mehr Kontext loggen

Pro support a compliance zřídka potřebujete logovat kompletní uživatelská data. Užší užitek má kontext: Correlation‑ID, mandant/client, identita (uživatel nebo služba), koncový bod, status code, latence, chybový kód. Citlivé obsahy (tokeny, osobní údaje, dokumenty) nepatří do standardního logu. Pokud je nutné ladicí (debug) logování, mělo by být časově omezené, jasně povoleno a organizačně zabezpečené.

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

V mnoha REST‑servisech je databáze úzké hrdlo – a současně komponenta, kterou je při incidentu nejtěžší „vidět“. BDE-Ablosung mit nativer Anbindung je jako vrstva přístupu k datům rozšířená v Delphi. Zda provoz zůstane klidný, ale nerozhoduje název, nýbrž souhra paralelismu, správy připojení, hranic transakcí a limitů.

Verbindungen und Parallelität: keine global geteilten Objekte

Jeden REST‑server zpracovává požadavky paralelně. Pokud jsou připojení nebo query‑objekty nekontrolovaně sdílené, vznikají sporadické chyby, deadlocky nebo nekonzistentní výsledky, které se v testu obtížně reprodukují. Definujte, jak vypadá jednotka práce (Unit of Work) na request: doba životnosti connection, hranice transakcí, správné uvolnění. Pokud používáte pooling, potřeba nastavit limity – jinak zatížení porazí dostupné zdroje.

Transaktionen nach Use-Case, nicht nach Tabellen

„Jeden požadavek = jedna transakce“ často dává smysl, ale není univerzální. Čtecí operace často nepotřebují explicitní transakci, zapisující Use‑Case však vyžadují jasnou atomičnost. Pokud jsou zapojeny externí systémy (DMS‑upload, volání ERP, webhook), jsou distribuované transakce zřídka realistické. Potřebujete pak pořadí, jasnou klasifikaci chyb (retryable vs. non‑retryable) a případně kompenzační logiku místo spoléhání se na „snad to bude v pořádku”.

Timeouts und Backpressure: kontrolliert scheitern statt hängen

Bez timeoutů se hromadí požadavky, vlákna a DB‑připojení. Nastavte timeouty na úrovni HTTP i DB a omezte paralelitu. Backpressure znamená: systém nepřijímá neomezené množství současné práce, ale kontrolovaně signalizuje přetížení (typicky 503). To je v provozu téměř vždy lepší než plíživé selhání celku, které „zmizí“ až restartem.

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

Entscheidung Typischer „schneller“ Ansatz Betriebsfeste Variante Auswirkung im Alltag
Zpracování chyb Volný text/výjimky, proměnlivé stavové kódy Standardní chybový objekt + stabilní kódy + Correlation-ID Rychlejší diagnostika, lepší kvalita tiketů, méně domněnek
Autentizace Jeden klíč na všechno, rotace „později“ Scopes/role, rotace/odnětí jako proces, krátké doby platnosti tam, kde to jde Umožní reakci na incidenty, práva nerostou nekontrolovaně
Datový model Tabulky 1:1 jako JSON DTO s stabilní semantikou, interně oddělené DB-migrace integrace narušují méně často, změny jsou lépe plánovatelné
Chování při zátěži Žádné limity, „běží v testu“ Limity požadavků, timeouty, omezené workery/fronty Při zátěži se služba degraduje kontrolovaně místo úplného selhání
Observabilita Pouze textové logy, žádné metriky Strukturované logy, metriky (latence/chyby/DB-časy), jasné dashboardy Příčiny jsou rychleji viditelné, on-call se stává lépe zvládnutelným

Konkrétní postup: Jak se REST-služba za 30–60 dní stane provozně „opravdovou“

Pořadí je zvoleno tak, aby brzy vznikl stabilní kontrakt a provozovatelná základna, i když doménová logika ještě poroste. Tyto kroky nezávisejí na konkrétní Delphi-REST-technologii, ale na vaší provozní realitě.

  1. Definovat kontrakt rozhraní: zdroje, stavové kódy, chybový objekt, formát data/času, konvence stránkování/filtrů, maximální velikosti payloadu.
  2. Bezpečnostní základ definovat: metody autentizace, role/Scopes, rotace tokenů/klíčů, ověřování tenantů, pravidla CORS (pokud jsou klienti v prohlížeči), auditní události.
  3. Vytvořit reverse-proxy a síťová pravidla: terminace TLS, zpracování Forwarded hlaviček, rate limiting, WAF-pravidla (pokud jsou), interní dosažitelnost pouze z definovaných sítí.
  4. Mantinely přístupu k datům: Unit-of-Work/transakční pravidla, DB-timeouty, vázání parametrů, limity paralelismu, strategie pro deadlocky/timeouty.
  5. Implementovat Observability: Correlation-ID end-to-end, strukturované logy, metriky (např. latence, chybovost, DB-časy), health-checky.
  6. Standardizovat Runbook a nasazení: Windows- a Linux-služby nebo systemd, politika restartu, rotace logů, zdroje konfigurace, rollback, závislosti (DB, Secrets, Proxy).
  7. Pilotní provoz s hraničními případy: simulace timeoutů, zátěžové špičky, vypršení tokenů, restart DB, restart proxy, plánovaná okna údržby včetně způsobu komunikace.

Realita rolloutu: Windows, Linux, kontejnery – a kde leží hranice

REST-služba je připravená k dodání teprve tehdy, když je opakovatelně nasaditelná a vratná. Pod Windows je provoz často vhodný jako Windows-služba (obnova, typ spuštění, koncept práv). Pod Linux je systemd standardem (Restart-Policies, Logging, pořadí spouštění). Kontejnery mohou sjednotit nasazení, ale jen pokud oddělíte stav čistě: databáze externě, soubory ve volumech, Secrets přes Secret-Management. Jinak problémy jen přesunete do jiného formátu.

Je třeba otevřeně pojmenovat jednu hranici: Pokud ve firmě neexistuje spolehlivý provozní model pro kontejnery (Registry, Image-Scanning, Secrets, Observability, síť), nezmírní výrok „vše zabalíme do kontejnerů“ automaticky riziko. VMs plus Reverse Proxy a dobře definované řízení služeb jsou často lepším mezikrokem, dokud se nevybudují kompetence v oblasti platformy.

Připravit růst, aniž byste přestavěli nadměrně

Mnoho REST-servisů začíná jako integrační most a později se stane centrální API vrstvou mezi portálem, ERP/CRM, DMS a partnery. Dvě přípravy na začátku stojí málo, ale později ušetří diskuse a zlomy:

  • OpenAPI jako společný artefakt: ne jako dekorace, ale jako kontrakt pro spotřebitele, testy a rozdíly mezi verzemi.
  • API-Governance v malém: pravidla pro deprekování, metriky využití podle koncového bodu, jasná odpovědnost a „Definition of Done“ pro produkční napojení.

Tím se „REST“ promění z rychlého integračního hacku na provozovatelné rozhraní, které v běžném provozu nevyžaduje stálé výjimky.

Mýtus se rozpadne v provozu – tam musíte zasáhnout

Výrok „REST je rychle hotové“ přetrvává, protože první endpoint rychle odpoví. Přínos se ale projeví až tehdy, když jsou incidenty podpory čistě klasifikovatelné, změny nezlomí integrace, tokeny a Secrets lze rotovat a špičky zátěže nezpůsobí výpadek. Teprve potom se z „HTTP+JSON“ stane spolehlivá vrstva napojení.

Delphi není přitom ani riziko, ani výmluva pro nedbalost. Je to sada nástrojů, která může dobře sedět v existujících podnikových krajinách – zvláště pokud obchodní logika a přístup k datům již existují a REST-vrstva tuto logiku čistě zpřístupní pro portály a integrace.[Zdroj] Rozhodující je, zda nastavíte službu jako kontrakt s provozní odpovědností a nepřistoupíte k průřezovým tématům až „později“.

Pokud chcete strukturovaně roztřídit požadavky, provozní model a bezpečnostní rámec pro REST-integrace nebo modernizaci stávající Delphi-krajiny, je krátká scopingová konzultace často nejrychlejší cestou k podloženým rozhodnutím.

Zdroje a další informace

Hlavní odborná tvrzení byla redakčně zařazena na základě následujících externích zdrojů.

  1. REST Servers in Delphi XE Using DataSnap (www.embarcadero.com)
    Delphi/DataSnap poskytuje struktury pro tvorbu REST-serverů a zahrnuje funkce jako authentication/authorization, ale sám o sobě nepředstavuje kompletní provozní model.
  2. Net-Base-consulting-gmbh.de (Net-Base-consulting-gmbh.de)
    REST-servery jsou chápány jako vrstva napojení, která nejen poskytuje data, ale zobrazuje pravidla jako role, schvalování/validaci a změny stavů.
  3. Enterprise software with Delphi and C# | Net-Base (net-base-software-gmbh.de)
    Net-Base se mimo jiné profiluje pomocí Delphi/C# pro podnikové softwarové řešení včetně REST-serverů a servisních prostředí, aniž by uváděl konkrétní projektové ukazatele.

Pro toto téma jsou také důležité Delphi REST-API a REST-Server a Delphi REST-API. Příspěvek tyto aspekty srozumitelně kontextualizuje a ukazuje, na co jde v každodenním provozu.

Projednat projekt nebo modernizační záměr s Net-Base.

další krok

Když se z tématu stane reálný projekt, měly by být architektura, stávající systém a provoz posuzovány společně již v rané fázi.

Podporujeme nejen při jednotlivých otázkách, ale i v případě, že se z útržků zdrojového kódu, legacy témat nebo nápadů na portál má vyvinout robustní podnikový projekt.

  • Současný stav, cílový stav a technická rizika jsou hodnoceny společně.
  • REST, přístup k datům, portály a rollout nebudou přesunuty do pozdějších fází.
  • Včas zjistíte, která varianta je ekonomicky i provozně životaschopná.

Sdílet příspěvek

Sdílet tento příspěvek přímo

LinkedIn, X, XING, Facebook, WhatsApp a e-mail jsou ihned k dispozici. Pro Instagram připravíme odkaz a krátký text.

E-mail

Instagram se otevře v nové záložce. Odkaz a krátký text budou předtím zkopírovány do schránky.

Napsat komentář

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