Net-Base Magazín

10.04.2026

REST-serverová architektura v Delphi pro podniky

APIs plně odhalí svou hodnotu teprve tehdy, když jsou společně naplánovány business logika, práva, datový model a provoz.

10.04.2026

Od tématu magazínu k projektové praxi

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

Mnoho společností dnes stojí před podobnou výchozí situací: dospělá odborná aplikace (často Delphi/VCL) zobrazuje klíčové procesy, ale najednou má obsluhovat nové kanály. Zákaznický portál potřebuje data a průběhy, mobilní uživatelé očekávají bezpečné přístupy, třetí systémy (ERP, DMS, CRM, BI) vyžadují integrace. V takové situaci se REST-API jeví jako logický krok. V praxi však iniciativy API zřídka selhávají kvůli HTTP nebo JSON – selhávají kvůli nejasnému rozdělení odpovědností mezi klientem, serverem a úložištěm dat.

Udržitelná REST-Server-architektura s Delphi nevznikne tím, že se „několik endpointů“ položí nad existující databázové tabulky. Vznikne tehdy, když společnost společně zváží odborná pravidla, bezpečnostní požadavky, nadvládu nad daty, hranice transakcí a provozní koncepty. REST-Server se tak stane stabilní vrstvou smlouvy mezi odbornou logikou a konzumenty: desktopovým klientem, portálem, službami, partnery rozhraní. Právě zde se Delphi uplatní: rychlý vývoj, robustní runtime, výkonný nativní kód, dobré databázové napojení (např. při BDE-náhradě s nativním připojením) a možnost kapslovat odbornou logiku kontrolovaně do knihoven nebo serverových modulů.

Tento článek popisuje, jak společnosti plánují REST-Server s Delphi tak, aby zůstaly odborně konzistentní, zapadly do stávající systémové krajiny a ve provozu se nestaly zdrojem chyb. V centru pozornosti jsou architektonické principy, typické úskalí v modernizačních projektech a konkrétní stavební bloky pro bezpečnost, přístup k datům, verzování a observabilitu.

Proč je REST-API v podniku architektonickým rozhodnutím

V klasickém klient-server světě byla řada pravidel implicitně rozptýlena v desktopovém klientu: validace, přechody stavů, výpočty, částečně i autorizace. Dokud existoval jen jeden klient, nebylo to kritické – odborně nevhodné, ale zvládnutelné. Jakmile na stejná obchodní objekty přistupuje více konzumentů, model se hroutí:

  • Portál nemůže „sdílet“ validace provedené klientem.
  • Mobilní aplikace mají být offline schopné, ale nesmí duplikovat odborná pravidla.
  • Integrace potřebují stabilní, verzované smlouvy a jasnou chybovou sémantiku.
  • Compliance vyžaduje auditovatelné přístupy, modely rolí a možnost dohledatelnosti.

API se stává místem, kde se setkávají odborná logika, práva a přístup k datům. Její architektura tedy rozhoduje o tom, zda zůstane váš systém dlouhodobě rozšiřitelný – nebo zda vytvoříte nové technické dluhy.

Delphi jako platforma pro REST-Servery: silné stránky a typické scénáře použití

Delphi je v podnicích často spojováno s desktopovými aplikacemi. Pro REST-Servery je Delphi však také velmi vhodné, obzvlášť když jde o znovupoužití existující odborné logiky nebo o výkonné služby. Typické scénáře v B2B prostředí:

  • API vrstva pro stávající software: existující Delphi-odborná aplikace zůstává jako UI, REST-Server kapsuluje přístupy k datům a pravidla pro nové konzumenty.
  • Backend pro portál/zákaznickou oblast: webový portál používá REST endpointy, které využívají stejný jádrový soubor pravidel jako interní procesy.
  • Integrace a rozhraní: napojení ERP/DMS/CRM, import/export, zpracování událostí, časované úlohy.
  • Linux-Services nebo Windows Services: dlouhotrvající procesy, queue-workeři, scheduler, dokumentové workflow.

Rozhodující není tolik popisek frameworku, jako disciplína při vrstvení, souběžnosti, zpracování chyb a nasazení. Delphi umožňuje obojí: rychle dodatelné iterace a zároveň čistou, modulární architekturu – pokud se plánuje uvážlivě.

Schématická vrstva: Layer-3 architektura jako základ pro trvalé API

Pro podnikový software se osvědčil jasný, štíhlý model vrstev. Ve Delphi prostředí se často popisuje jako Layer-3 architektura. Termíny se liší, odpovědnost by však měla být jasná:

1) API-/Transport-Layer (HTTP, serializace, routing)

Tato vrstva se stará o HTTP, autentizaci na úrovni protokolu, formáty request/response, routing, status kódy, Content-Type, kompresi. Sem nepatří odborná pravidla. Cíl: zaměnitelnost a testovatelnost. Pokud později rozšíříte REST-API o doplňkové protokoly (např. WebSocket, gRPC-analogické vzory, Server-Sent Events), musí jádro domény zůstat stabilní.

2) Domain-/Service-Layer (odborná logika, use cases, práva, transakce)

Zde žije odborná pravda: stavové stroje, výpočty, plausibility, pravidla pro nájemce, kontroly práv u odborných akcí. Tato vrstva by měla být nezávislá na UI a pracovat pokud možno bez znalosti HTTP. Ideálně implementujete use cases jako „uvolnit objednávku“, „uzavřít tiket“, „vygenerovat fakturu“ místo pouze CRUD operací nad tabulkami.

3) Data-Access-Layer (repository, SQL, FireDAC, mapování)

Tato vrstva kapsuluje perzistenci: SQL, uložené procedury, řízení transakcí, koncepty zámků, connection-pooling, DB-specifické zvláštnosti. Ve Delphi je BDE-Ablosung mit nativer Anbindung často pragmatickou volbou, zvláště při migracích (BDE-náhradě) a v heterogenních databázích (SQL Server, PostgreSQL, MariaDB, Firebird). Důležité je, aby Data-Access-Layer neměl znalost HTTP a nedělal obchodní rozhodnutí.

Tento model snižuje vazbu: změny datového modelu nevyžadují přepsání API a noví klienti automaticky dědí stejnou logiku. Zejména při Delphi modernizaci je to základ pro postupné oddělování rostoucích desktopových aplikací bez přerušení provozu.

API-design pro podnikový software: ne CRUD, ale odborné smlouvy

Mnoho API začíná endpointy jako /customers, /orders, /documents a implementuje CRUD. To je u interních nástrojů někdy dostačující, v podnikové softwaru je to však rychle příliš povrchní. Odborné procesy se skládají z přechodů stavů, pravidel, vedlejších efektů a oprávnění.

Modelovat zdroje, akce a stavy čistě

Lepší vzor je kombinace zdrojů a jasných akcí, např.:

  • Čtení zdroje: GET /orders/{id}
  • Vyvolání akce: POST /orders/{id}/release
  • Vytvoření dokumentu: POST /orders/{id}/documents/invoice
  • Kontrola stavu: GET /orders/{id}/status

Tím se v API smlouvě stane zřejmým, že „uvolnit“ není jen update pole. Server může centrálně realizovat validace, práva, transakce, audit a vedlejší procesy.

Chybová sémantika a validace: udělat klientům plánovatelné

Podnikové klienty musí být schopné rozlišovat chyby: validační chyby (400), chybějící oprávnění (403), konflikt způsobený paralelní změnou (409), odborné odmítnutí (často také 409 nebo 422), dočasné problémy backendu (503). Důležitá je konzistentní chybová struktura, např. s chybovým kódem, zprávou, volitelnými upozorněními na pole a korelačním ID. Tak může portál zobrazit srozumitelné informace a současně podpora a provoz efektivně dohledat příčinu.

Bezpečnost: autentizace není totéž co autorizace

V B2B kontextech bezpečnost zřídka selhává kvůli šifrování, častěji kvůli chybějícímu oddělení identity, rolí a odborných oprávnění. REST-Server architektura proto musí rozlišovat dvě úrovně:

Autentizace (kdo to je?)

Běžné postupy jsou tokenově založené přístupy (např. JWT nebo opaque tokeny) kombinované s TLS a jasnou strategií session. Rozhodující je: životnost tokenu, mechanismus obnovy, blokace při změně rolí a otázka, zda mít pro portály a interní systémy různé identity providery. Delphi-Servery mohou fungovat jako resource-servery i – v závislosti na nastavení – vydávat tokeny. V mnoha podnikových krajinách je integrace do stávajících identitních systémů (např. AD/LDAP, SSO řešení) klíčovým bodem.

Autorizace (smí to dělat?)

Autorizace patří do Domain-/Service-Layeru. Role a práva zřídka bývají čistě technická; závisí na klientovi, lokalitě, organizační jednotce, stavu smlouvy nebo fázi procesu. Dobrá praxe:

  • Model rolí (např. Admin, Účetní, Auditor) jako základ
  • Odborné politiky („smí vystavit fakturu pouze ve stavu X“, „smí vidět pouze své tikety“)
  • Podpora nájemníků jako standard: každý request potřebuje tenant kontext
  • Audit: kdo kterou akci kdy vyvolal

API by nemělo jen vracet „přístup povolen/odmítnut“, ale důsledně na serveru zabránit tomu, aby parametrovými triky byly viditelné údaje jiných tenantů. To zní samozřejmě, ale ve zralých systémech je to jeden z nejčastějších architektonických omylů, když se „tabulky dají na HTTP“ příliš rychle.

Přístup k datům s FireDAC: transakce, pooling a databázová strategie

V podnikových aplikacích je přístup k datům faktorem stability: špičky zátěže, deadlocky, dlouhé reporty, paralelní aktualizace, dávkové importy. FireDAC je v Delphi ekosystému osvědčený prvek pro jednotný přístup k různým databázím. Pro REST-Server architekturu jsou zásadní zejména tyto body:

Transakční hranice podle Use Case

REST-API je typicky requestově orientované. To dobře sedí na „transakci na use case“: během requestu se otevře transakce, provedou se odborné operace a pak commit/rollback. Důležité: nebalit automaticky každý endpoint do transakce, ale u zapisujících akcí být konzistentní. Čtecí endpointy mohou podle úrovně izolace také potřebovat transakce, pokud jsou důležité konzistentní pohledy.

Strategie připojení a paralelita

Paralelita serveru znamená: mnoho současných requestů, každý s DB přístupem. Plánujte proto:

  • omezené, monitorované velikosti poolu
  • time-outy pro dotazy a připojení
  • jasná pravidla pro dlouhotrvající operace (vynést do jobů/workerů)

Častou chybou je spouštět náročné reporty nebo exporty synchronně přes tutéž API instanci, která obsluhuje interaktivní portálové požadavky. Lepší je oddělení: interaktivní vs. batch/async.

Modernizace databáze jako součást plánování API

Pokud v sestavě ještě existují starší přístupy k datům (např. BDE), API se stane katalyzátorem: donutí k jasným hranicím přístupu k datům. Kontrolovaná náhrada směrem k FireDAC snižuje rizika a zvyšuje přenositelnost (PostgreSQL, MariaDB, SQL Server). Důležité je neplánovat to jako „Big Bang“, ale krokově: nové serverové use-casy užívají nový Data-Access-Layer, zatímco staré části postupně dojíždějí.

Verzování a zpětná kompatibilita: API smlouvy chrání

Firmy často podceňují, jak drahé jsou breaking changes. Jakmile na vaší API závisí zákaznický portál, partnerský systém nebo Windows-služba, už si nemůžete dovolit „rychle přejmenovat pole“. Proto je čistá verziovací strategie povinnost.

Pragmatická pravidla pro verzování

  • Žádné breaking changes bez verze: nepřejmenovávejte/nezřizujte pole, neinterpretujte endpointy jinak.
  • Rozšiřovat místo měnit: přidávejte pole, stará označujte jako deprecated.
  • Kompatibilní výchozí hodnoty: vyhýbejte se novým povinným polím nebo je odvoďte na serveru.
  • Explicitní verzování: např. /v1/… nebo přes hlavičku; důležitější než metoda je důslednost.

Pro Delphi týmy to také znamená: držet DTOs (Data Transfer Objects) stabilní a vědomě mapovat, místo serializovat doménové objekty 1:1. To zvyšuje počáteční náklady, ale dlouhodobě snižuje náklady na podporu.

Observabilita: logy, metriky a trace od začátku plánovat

V produkčním podnikovém provozu je „funguje u mě“ bezcenné, když se chyby nedají reprodukovat. Právě REST-Servery, které slouží mnoha konzumentům, potřebují minimální observabilitu:

Strukturované logování s korelačním ID

Každý request by měl nést korelační ID (převzít příchozí nebo vygenerovat) a to se musí objevit v logu. Záznamy by měly být strukturované (např. JSON-log), aby je bylo možné ingestovat do centrálních systémů. Minimálně relevantní:

  • metoda requestu, route, status code, doba trvání
  • user-/tenant-kontext (pseudonymizovaný/ve shodě s pravidly)
  • trvání DB a třída chyby
  • korelační ID pro podporu

Metriky pro kapacitu a chybové trendy

Pro škálování a stabilitu potřebujete metriky: requests za minutu, p95/p99 latence, chybovost na endpoint, zatížení DB poolu, délky front. Nemusí to být „Cloud-Native overkill“, ale bez čísel se diskuze o výkonu změní na názorovou výměnu.

Zpracování chyb a výjimek jako architektonický prvek

Delphi-Exceptions nesmí neřízeně „prosakovat“ ven. Centrální exception-middleware (nebo globální handler) by měl převádět výjimky do konzistentních chybových odpovědí, včetně ID podpory a smysluplných HTTP-kódů. Interně patří stacktracy do zabezpečených logů, nikoli do odpovědí klientovi.

Synchronní vs. asynchronní: vyčlenit dlouhotrvající operace z odpovědi REST

Mnoho podnikových procesů není „request/response do 200 ms“: generování PDF, import dat, běhy rozhraní, porovnávání, hromadné změny, archivace. Tyto pracovní zátěže málokdy patří do synchronního REST endpointu, protože by vázaly vlákna, způsobovaly time-outy a blokovaly uživatele.

Job-pattern

Osvedčený postup: endpoint spustí job a server okamžitě vrátí Job-ID. Jiný endpoint poskytne stav/výsledek. Volitelně může callback/webhook informovat. Ve Delphi to lze realizovat worker-službami, job-tabulkou a jasným stavovým strojem. Výhoda: stabilita a plánovatelné škálování.

Fronty a služby

Podle prostředí může mít smysl message queue, ale nemusí to být nutné. Důležité je princip: interaktivní API zůstávají responzivní, dávkové procesy běží kontrolovaně, opakovatelně a pozorovatelně – jako Windows Services nebo Linux-Services, podle nasazení.

Nasazení v podniku: Windows, Linux, kontejnery, On-Prem

REST-Server architektura je „hotová“ teprve tehdy, když je provozuschopná. Podniky se hodně liší: klasické Windows servery, virtualizované Linux hosty, kontejnerové platformy, přísné síťové zóny, proxy a certifikátové požadavky. Delphi je v tomto směru flexibilní, pokud jsou závislosti pečlivě kontrolovány.

Konfigurace a tajné klíče

Konfigurace musí být závislá na prostředí (Dev/Test/Prod). Přihlašovací údaje nepatří do EXE nebo repozitáře. Použijte bezpečné úložiště (např. secrets-management platformy) a oddělte hodnoty konfigurace od vydání kódu. Plánujte také rotace (DB hesla, API klíče) tak, aby nebylo nutné systém znovu sestavovat.

Strategie releasu a rollbacku

Když k API připojuje více konzumentů, potřebujete kontrolované releasy: migrace DB schémat, feature-toggles pro postupné aktivování, jasné rollback cesty. Zejména změny v databázi musí být zpětně kompatibilní, pokud má být možný rollback verze serveru.

Integrace se stávajícím software: postupná modernizace místo Big Bang

V mnoha Delphi krajinách je odborné jádro hodnotné, ale technicky „slepé“: UI-napojené přístupy k datům, globální stavy, smíšené odpovědnosti. REST-API může být zároveň rizikem i příležitostí. Cílem by měla být cesta, která za rozumné náklady přinese měřitelné zlepšení.

Strangler-approach pro API

Místo všeho přestavět definujte odborné rozhraní, které přináší reálný užitek: např. „stav objednávky a dokumenty pro zákaznický portál“, „lookup master dat pro mobilní uživatele“, „rozhraní pro ERP účtování“. Tyto use cases implementujte jako nové API funkce včetně Domain-Layeru a Data-Accessu. Starý klient se může postupně přepínat na stejné serverové use-casy, aniž by bylo nutné UI ihned přebudovat.

Sdílená odborná logika: smysluplně, ale kontrolovaně

Delphi umožňuje využití odborných knihoven jak v serveru, tak v existujících aplikacích. To může sloužit jako most, ale nese to rizika: pokud se do sdílené logiky vsákne UI-závislost, ztratíte oddělení. Jednoznačné pravidlo pomůže: sdílená logika smí být pouze bez UI, bez globálních stavů, s jasnými rozhraními a testovatelnými jednotkami. Vše ostatní zůstává oddělené.

Typické chyby v REST-Server projektech – a jak se jim vyhnout

„Prostě publikujeme tabulky“

Pokud endpointy přímo zrcadlí tabulky, vznikne nestabilní systém: každé refaktoring DB je breaking change API, odborná pravidla se duplikují v klientech a riziko bezpečnostních mezer kvůli neověřeným parametrům roste. Lepší: domain-use-casy a DTOs, které smlouvu stabilizují.

Odborná oprávnění jen v klientu

Klienti jsou vyměnitelní a manipulovatelní. Autorizace patří na server a musí zohlednit odborná pravidla, nejen technické role.

Chybějící strategie pro souběžnost

Paralelní aktualizace se dějí: dva pracovníci, portál a interní klient, nebo importní job. Bez optimistic locking (např. RowVersion/Timestamp), kódů konfliktu (409) a jasných pravidel pro merge vznikají ztráty dat nebo chyby typu „poslední píše vyhrává“.

Dlouhotrvající úlohy blokují interaktivní endpointy

Synchronní generování PDF nebo exporty vedou k time-outům a zážitkům „zaseklo se“. Lepší je job-pattern se status endpointy.

Observabilita je přidávána dodatečně

Bez korelačního ID, strukturovaných logů a metrik se každé narušení změní v pátrání. Pozorovatelnost není luxus, ale podmínka provozu.

Konkrétní kontrolní seznam pro vaši REST-Server architekturu s Delphi

  • Jasné oddělení vrstev: transport (HTTP), doména (use cases), data access (FireDAC/SQL).
  • API chápat jako smlouvu: držte DTOs stabilní, plánujte verzování, vyhýbejte se breaking changes.
  • Bezpečnost ve dvou krocích: autentizace (token) plus autorizace (odborné politiky, tenant).
  • Transakce vědomě nastavit: podle use case, time-outy, strategie konfliktů.
  • Dlouhotrvající úlohy asynchronně: joby/worker, Windows- nebo Linux-services.
  • Vnést observabilitu: korelační ID, strukturované logy, metriky, centrální zpracování chyb.
  • Nasazení realisticky naplánovat: konfigurace/secrety, rollback, migrace databáze.
  • Modernizace iterativně: hodnotné use cases první, staré části postupně oddělovat.

Závěr: REST-Servery rozvinou hodnotu teprve jako provozní a odborná architektura

REST-Server architektura s Delphi přináší firmě největší efekt tehdy, když není vnímána jen jako „technické rozhraní“, ale jako spojující jádro mezi procesy, daty a kanály. Rozhodující jsou čisté vrstvy (Layer-3 architektura), odborně modelované endpointy, důsledná bezpečnostní a tenant logika a provozní model s verzováním, monitoringem a kontrolovanou souběžností. Tím se API stává stabilní platformou: pro portály, integrace, služby a postupnou Delphi modernizaci – aniž by byla ohrožena odborná substance vyrostlého systému.

Pokud chcete prověřit, jak postavit zatížitelnou REST-API nad vaší existující Delphi krajinou (včetně databázové strategie, FireDAC, služeb a provozu), kontaktujte nás zde: https://net-base-software-gmbh.de/kontakt/

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.