Net-Base Magasin

13.04.2026

Udvikling af REST-servere med Delphi: arkitektur, sikkerhed og drift i praksis

Udvikle REST-server med Delphi: Fejlkontrol for IT-ledelse og administratorer. Sådan planlægger du API-kontrakt, sikkerhed, dataadgang, Reverse Proxy, observability og udrulning – uden vedligeholdelsesfælde.

13.04.2026

Fra magasinets tema til projektpraksis

Passende service- og tekniske sider til artiklen

Video-Botschaft

Udvikling af REST-servere med Delphi: arkitektur, sikkerhed og drift i praksis

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.

Fejlen opstår ofte lige før Projektstart — Arkitektur & Samarbejde: „Vi skal bare hurtigt udvikle en REST-server med Delphi. Et par endepunkter, lidt JSON – det er da overskueligt.“ Det lyder som en klar, lille opgave. Det bliver som regel først dyrt efter go-live, når integrationer »sporadisk« fejler, ordrer dukker op dobbelt, eller reverse proxy’en i overvågningen er grøn, mens forretningsafdelingen allerede er blokeret.

REST virker enkel, fordi den første request hurtigt giver et svar. I digitale virksomheds­løsninger tæller det dog ikke den første request, men driften efter den tiende release: stabil semantik, sikker autentificering/autorisation, kontrolleret belastningsadfærd og diagnosekapacitet, når flere systemer er involveret. Delphi kan være en praktisk platform til det. Prisen er ikke »mere programmering«, men flere beslutninger, som skal træffes tidligt og bindende – som en grænsefladekontrakt, ikke som en framework-legeplads.

Denne fejltjek undersøger, hvad der er for enkelt ved påstanden »hurtigt ordnet«, hvor der findes en fornuftig undtagelse, og hvordan I kan udlede en konkret fremgangsmåde. Fokus er på arkitektur- og driftskonsekvenser: sikkerhed, data, grænsefladestabilitet, rollout og support.

Fejltjek: „Framework wählen, Endpunkte bauen, fertig“

I mange teams starter diskussionen ved WebBroker, DataSnap, RAD Server eller slanke REST-frameworks. Dette valg er vigtigt – men sjældent kernen. Kernen er, om I fastlægger tværgående emner så konsekvent, at ikke hvert enkelt endepunkt senere udvikler sit eget regelsæt.

Fra drift- og admin-synspunkt skaber især fem emner indsats og risiko: autentificering/autorisation, fejlformat og statuskoder, versionering/deprecation, timeouts/belastningsbeskyttelse samt observability (strukturerede logs, metrikker, valgfrit tracing). Mangler disse retningslinjer, opstår en samling enkelte endepunkter, der i test »på en eller anden måde« fungerer, men som er svære at styre i drift.

Et producentdokument om DataSnap dokumenterer, at Delphi medbringer strukturer til opbygning af REST-servere og samtidig adresserer autentificering/autorisation som en tænkt funktion.[Kilde] Det afklarer gennemførligheden. Grænsen består dog: Deraf følger endnu ikke et driftskoncept. Praktisk konsekvens: Brug gerne wizards og biblioteker til at komme i gang, men planlæg sikkerhed, fejlstandarder, grænseværdier og overvågning som egne, testbare arbejdspakker.

Udvikling af REST-server med Delphi: hvilken teknisk beslutning tæller virkelig

For IT-ledelse og projektansvarlige er det afgørende, hvor godt adfærd og drift kan kontrolleres: Kan I afbilde Reverse-Proxy-detaljer præcist? Kan tværgående regler håndhæves centralt? Er opgraderingsvejen planbar? Og: Kan systemet opereres med de kompetencer, der reelt findes i virksomheden?

WebBroker: tæt på HTTP-modellen, godt til kontrollerbar adfærd

WebBroker holder sig tæt på protokollen (Request/Response, Header, Statuscodes). Det er ofte en fordel i virksomhedsdrift, fordi I får detaljerne under kontrol: timeouts, header-behandling, indholdsgrænser, fejlresponser. Prisen er disciplin: routing, fejlhylstre, auth-kontroller og logging skal konsekvent standardiseres – ellers opstår der vildvækst mellem endepunkter.

Middleware-tilgange (f.eks. Delphi Horse): standarder håndhæves centralt

Middleware betyder, at tilbagevendende trin kører centralt, ikke i hvert endepunkt. Det understøtter governance: autentificering, Correlation-ID, strukturerede logs, rate-limits eller request-validering implementeres én gang og er derefter „ikke til forhandling“. I drift er det vigtigt, at middleware ikke bliver en blackbox. Ved en incident skal det være synligt, om en anmodning fejler på autentificering, validering, routing eller forretningslogik – og hvordan det fremgår i loggen.

RAD Server: mere platform-lifecycle end „kun REST“

RAD Server er mindre et „lille REST-projekt“ og mere en platformbeslutning. Det kan være fornuftigt, hvis I bevidst vil drive et miljø med dets byggesten og dets lifecycle. For et slankt integrationslag kan en lettere stack på længere sigt skabe mindre binding. Afgørende er, om jeres organisation langsigtet vil bære platformvedligeholdelsen (opdateringer, sikkerhedsopdateringer, driftsviden).

DataSnap: respekter bestående systemer, vurder nyudvikling nøgternt

DataSnap findes ofte i etablerede Delphi-landskaber. Embarcadero-papiret dokumenterer den grundlæggende REST-Server-oprettelse og de tilsigtede sikkerhedsfunktioner.[Quelle] For nyudvikling gælder dog: Passer tilgangen til jeres standarder (OpenAPI som kontraktartefakt, versionering, Observability, reverse-proxy-opsætning, reproducerbar deployment)? Hvis I skal bygge ekstra lag for det, er det ikke et udelukkelseskriterium – men det hører hjemme i indsatsestimatet, ikke i håbet.

Den praktisk relevante undtagelse: Hvornår „hurtigt et endepunkt“ alligevel fungerer

Der er reelle situationer med tidspres: Afløsning af en filgrænseflade, pilot til et portal, partnerintegration med fast deadline. Undtagelsen virker, hvis „hurtigt“ ikke betyder „uden standarder“. Minimum betyder da: et grundsæt af regler, der gælder fra dag 1 og senere ikke skal skæres ud igen.

API-design som driftsdisciplin: fejl, versionering, idempotens

Mange REST-projekter fejler ikke på manglende funktion, men på uklar semantik. To systemer kan fortolke den samme JSON-struktur forskelligt. I testmiljøer afsløres det sjældent, fordi man som regel tester en consumer mod en server – ikke et landskab bestående af portal, ERP/CRM, batch, dokumentslager og eksterne partnere.

Fejlscenarier: stabile og maskinlæsbare frem for kreative

I drift er det afgørende, at fejl kan evalueres automatisk. En klient skal kunne skelne: auth mislykkedes (401/403), konflikt (409), validering (ofte 422), ressource ikke fundet (404), serverfejl (5xx). Til support og drift er en Correlation-ID nødvendig for at samle request og backend-aktiviteter. Standardiserer I det, falder diagnosetiden markant: mindre „virker ikke“, mere „fejlkode X på endpunkt Y med Correlation-ID Z“.

Versionering: ændringsstyring, ikke kun URL-design

Versionering er i virksomhedsmiljøer først og fremmest en organisatorisk proces. Teknisk er URL-versionering (f.eks. /api/v1) ofte nemmest at drive, fordi reverse-proxy, routing, dokumentation og firewall-regler forbliver entydige. Vigtigere end skemaet er reglen: udvid kompatibelt (tilføj nye felter, omfortolk ikke eksisterende semantik) og introducer breaking changes kun med et deprecationsvindue, klar migrationshjælp og brugsdata pr. endpoint. Uden brugsdata bliver deprecation en blind flyvning.

Idempotens: den usynlige forsikring mod gentagne forsøg

Netværk oplever timeouts. Klienter gentager. Load Balancer bryder forbindelser. Uden en idempotens-strategi opstår dobbelte faglige processer – ofte uden synlig fejl. Afhjælpning kan være Idempotency-Keys for udvalgte POST-Use-Cases eller faglig duplikatdetektion (f.eks. ekstern bilagsnummer, kombination af ordregiver + reference). Hvilken variant passer, afhænger af processen. Helt uden regler ligger der en risiko, som som regel først bliver synlig under reel belastning og ved reelle fejl.

Arkitekturkonsekvenser: adskil lag, så ændringer kan planlægges

Et REST-endepunkt er transportlogik, ikke domænelogik. Hvis begge blandes, bliver enhver ændring i grænsefladen en risiko for faglogik – og enhver ændring i faglige regler en risiko for integrationer. For langtidsholdbar business-software er en opdeling, som også er let at forklare i drift, velegnet:

  • Transportlag: HTTP, Auth, validering, svar-/fejlformat, Correlation-ID.
  • Domænelag: faglige Use-Cases (statusændringer, godkendelser, bogføringer), regler, transaktionsgrænser.
  • Persistens/Integration: databaseadgang (f.eks. BDE-afløsning med nativer tilslutning), eksterne systemer (ERP, DMS, mail, kø/broker).

Det er ikke en akademisk øvelse. Det afgør, om I senere kan tilslutte en anden consumer uden at duplikere logik. Og det afgør, om sikkerheds- og logging-regler forbliver centrale eller splittes per endepunkt.

Sikkerhed i en reel opsætning: Reverse Proxy, TLS, Tokens, Audit

En REST-service udvider angrebsoverfladen, fordi processer og data bliver tilgængelige over HTTP. Hyppige problemer er ikke „manglende TLS“, men detaljer: forkert fortolkede klient-IP’er, for brede rettigheder, for lange token-levetider, ukontrollerede CORS-regler eller logs, der afslører mere end nødvendigt.

TLS på Reverse Proxy: afklar ansvar og regler for headers

I mange miljøer terminerer TLS (Transport Layer Security) på reverse proxy’en, f.eks. nginx eller en load balancer. Det forenkler certifikathåndtering og centrale politikker. Så skal applikationen korrekt genkende det oprindelige protokol og den reelle klient-IP. Hvis forwarded-headers (Forwarded eller X-Forwarded-*) evalueres ukontrolleret, undermineres sikkerheds- og supportfunktioner: rate limiting, audit-analyser og IP-baserede regler bliver upålidelige eller sårbare. Praktisk konsekvens: Definér, hvilken proxy-sti I anser for betroet, og behandl headers fra udenfor som potentielt manipulerede.

JWT, API-Keys, SSO: afgørende er livscyklussen

JWT (JSON Web Token) er et udbredt tokenformat, ofte i OIDC-setup (OpenID Connect, standard baseret på OAuth2). API-nøgler er almindelige i system-til-system-integrationer, så længe rotation, deaktivering og scope er klart reguleret. I begge tilfælde træffer driften beslutningen: Hvor ligger secrets? Hvordan roterer nøgler uden downtime? Hvordan fratager I adgang i et Incident? Og hvordan kontrollerer I roller/scopes, så rettigheder ikke vokser „ved et uheld“?

En Net-Base-temaside placerer REST-servere som et integrationslag, der skal afbilde regler som roller, godkendelser/approvals, validering og statusændringer – ikke blot som ren CRUD-dataoverførsel.[Kilde] Det rammer kernen: Hvis din API udløser faglige handlinger, har du brug for autorisation på use-case-niveau (ikke kun „bruger er logget ind“) samt audit-information (hvem, hvornår, hvilken handling), så processer kan rekonstrueres ved tvister.

Audit und Datenschutz: weniger Nutzdaten loggen, mehr Kontext loggen

For support og compliance er det sjældent nødvendigt at logge komplette brugsdata. Mere nyttigt er kontekst: Correlation-ID, tenant/klient, identitet (bruger eller service), endepunkt, statuskode, latenstid, fejlkode. Følsomt indhold (tokens, personoplysninger, dokumenter) hører ikke hjemme i standardloggen. Hvis debug-logging er nødvendig, bør det være tidsbegrænset, klart godkendt og organisatorisk sikret.

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

I mange REST-services er databasen flaskehalsen – og samtidig den komponent, der under et Incident er sværest at „se“. BDE-Ablosung mit nativer Anbindung er som dataadgangslag udbredt i Delphi. Om driften forbliver stabil afgøres dog ikke af navnet, men af samspillet mellem parallelitet, forbindelseshåndtering, transaktionsgrænser og grænseværdier.

Verbindungen und Parallelität: keine global geteilten Objekte

En REST-server behandler forespørgsler parallelt. Hvis forbindelser eller query-objekter deles ukontrolleret, opstår sporadiske fejl, deadlocks eller inkonsistente resultater, som er svære at reproducere i test. Definér, hvordan en Unit of Work per Request ser ud: forbindelseslivstid, transaktionsgrænser, korrekt frigivelse. Hvis pooling anvendes, kræver det grænser – ellers vinder belastningen over ressourcerne.

Transaktionen nach Use-Case, nicht nach Tabellen

„En Request = en Transaktion“ er ofte fornuftigt, men ikke universelt. Læsoperationer behøver ofte ingen eksplicit transaktion; skrivende use-cases kræver derimod klar atomaritet. Hvis eksterne systemer er involveret (DMS-Upload, ERP-opkald, webhook), er distribuerede transaktioner sjældent realistiske. Så har I brug for rækkefølge, klar fejlklassifikation (retryable vs. ikke-retryable) og eventuelt kompensationslogik, i stedet for at satse på „det går nok“.

Timeouts und Backpressure: kontrolliert scheitern statt hängen

Uden timeouts ophober requests, tråde og DB-forbindelser sig. Sæt timeouts på HTTP- og DB-niveau og begræns parallelitet. Backpressure betyder: Systemet påtager sig ikke uendeligt mange samtidige opgaver, men signalerer kontrolleret overbelastning (typisk 503). Det er i drift næsten altid bedre end en snigende totalfrysning, der kun „forsvinder“ ved genstart.

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

Beslutning Typisk „hurtig“ tilgang Driftsstærk variant Konsekvens i hverdagen
Fejlbehandling Fri tekst/Exceptions, skiftende statuskoder Standard-fejlobjekt + stabile koder + Correlation-ID Hurtigere diagnostik, bedre ticket-kvalitet, mindre gætterier
Autentificering Én nøgle til alt, rotation „senere“ Scopes/Rollen, rotation/tilbagekaldelse som proces, korte levetider hvor muligt Incident-reaktion bliver mulig, rettigheder vokser mindre ukontrolleret
Datamodel Tabeller 1:1 som JSON DTOs med stabil semantik, internt afkoblet DB-migrationer bryder integrationer sjældnere, ændringer bliver mere planlægbare
Lastadfærd Ingen begrænsninger, „kører i test“ Request-grænser, timeouts, begrænsede workere/queues Under belastning degraderer servicen kontrolleret i stedet for at fejle helt
Observabilitet Kun tekstlogs, ingen metrikker Strukturerede logs, metrikker (latens/fejl/DB-tid), klare dashboards Årsager bliver synlige hurtigere, on-call bliver mere håndterbart

Konkret fremgang: Så bliver REST-servicen driftsmæssigt „ægte“ på 30–60 dage

Rækkefølgen er valgt, så der tidligt opstår en stabil kontrakt og et driftbart fundament, selvom forretningslogikken endnu vokser. Disse skridt afhænger ikke af en bestemt Delphi-REST-teknologi, men af jeres driftsrealitet.

  1. Fastlæg grænsefladekontrakt: Ressourcer, statuskoder, fejlobjekt, datums-/tidsformat, paging/filter-konventioner, maksimale payload-størrelser.
  2. Definér sikkerhedsbasis: Auth-procedurer, Rollen/Scopes, token-/key-rotation, tenant-validering, CORS-regler (hvis browser-klienter), audit-hændelser.
  3. Byg reverse-proxy- og netværksregler: TLS-terminering, håndtering af Forwarded-headers, Rate Limiting, WAF-regler (hvis til stede), intern tilgængelighed kun fra definerede netværk.
  4. Retningslinjer for dataadgang: Unit-of-Work/Transaktionsregler, DB-Timeouts, parameterbinding, grænser for parallelitet, strategi for deadlocks/timeouts.
  5. Implementér Observabilitet: Correlation-ID end-to-end, strukturerede logs, metrikker (f.eks. latens, fejlfrekvens, DB-tider), Health-Checks.
  6. Standardisér Runbook og Deployment: Windows- og Linux-Services eller systemd, genstartspolitik, logrotation, konfigurationskilder, rollback, afhængigheder (DB, secrets, proxy).
  7. Pilotdrift med kanttilfælde: timeout-simulering, lastspidser, token-udløb, DB-genstart, proxy-genstart, planlagte vedligeholdelsesvinduer inklusive kommunikationsvej.

Rollout-realitet: Windows, Linux, containere – og hvor grænserne går

En REST-Service er først leveringsdygtig, når den kan rulles ud og tilbage igen på en gentagelig måde. Under Windows er driften som Windows- und Linux-Services ofte nærliggende (genopretning, starttype, rettighedskoncept). Under Linux er systemd standarden (Restart-Policies, Logging, startrækkefølge). Containere kan ensarte deployments, men kun hvis I adskiller state korrekt: database ekstern, filer i volumes, secrets via secret-management. Ellers flytter I problemerne til et andet format.

En grænse bør man kalde åbent: Hvis virksomheden ikke har en pålidelig containerdriftsmodel (Registry, Image-Scanning, Secrets, Observability, netværk), reducerer „vi containeriserer alt“ ikke automatisk risikoen. VMs plus reverse proxy og en veldefineret tjenesteadministration er ofte den bedre mellemløsning, indtil platformkompetence er opbygget.

Forbered vækst uden at overbygge

Mange REST-services starter som en integrationsbro og bliver senere det centrale API-lag mellem portal, ERP/CRM, DMS og partnere. To forberedelser koster lidt i starten, men sparer senere diskussioner og brud:

  • OpenAPI som fælles artefakt: ikke som dekoration, men som en kontrakt for consumers, tests og diffs mellem versioner.
  • API-Governance i lille skala: Deprecation-Regeln, brugsmæssige metrikker pr. endepunkt, klar ansvarlighed og en „Definition of Done“ for produktive tilslutninger.

Dermed bliver „REST“ fra et hurtigt integrationshack til et driftbart interface, der i dagligdagen ikke kræver konstant særbehandling.

Myten bryder i driften – der skal De sætte ind

Udsagnet „REST ist schnell erledigt“ lever videre, fordi et første endepunkt hurtigt svarer. Nytten opstår først, når supporttilfælde kan klassificeres entydigt, ændringer ikke bryder integrationer, Tokens og Secrets kan roteres, og belastningstoppe ikke fører til standsning. Så bliver „HTTP+JSON“ et pålideligt tilslutningslag.

Delphi er hverken en risiko eller et fripas. Det er et værktøjssæt, der kan passe godt i etablerede virksomhedsmiljøer – især når faglogik og dataadgang allerede eksisterer, og et REST-lag gør denne logik ren og tilgængelig for portaler og integrationer.[Kilde] Afgørende er, om De opstiller servicen som en kontrakt med driftsansvar og ikke trækker tværgående emner ind „senere“.

Hvis De ønsker at strukturere krav, driftsmodel og sikkerhedsramme for REST-integrationer eller modernisering af en eksisterende Delphi-landskab, er en kort scoping-samtale ofte den hurtigste vej til solide beslutninger.

Kilder og yderligere oplysninger

De faglige kerneudsagn er redaktionelt placeret med udgangspunkt i følgende eksterne kilder.

  1. REST Servers in Delphi XE Using DataSnap (www.embarcadero.com)
    Delphi/DataSnap tilbyder strukturer til oprettelse af REST-servere og indeholder funktioner som Authentication/Authorization, men er ikke i sig selv et komplet driftsmodel.
  2. Net-Base-consulting-gmbh.de (Net-Base-consulting-gmbh.de)
    REST-servere forstås som et tilslutningslag, der ikke blot leverer data, men også afbilder regler som roller, godkendelser/validering og statusændringer.
  3. Virksomhedssoftware med Delphi og C# | Net-Base (net-base-software-gmbh.de)
    Net-Base positionerer sig bl.a. med Delphi/C# inden for virksomhedssoftware inklusive REST-servere og servicelandskaber, uden at hævde konkrete projektnøgletal.

I forbindelse med dette emne er Delphi REST-API og REST-server og Delphi REST-API også vigtige. Indlægget sætter disse aspekter i en forståelig sammenhæng og viser, hvad der er vigtigt i praksis.

Drøft projekt eller moderniseringsprojekt med Net-Base.

Næste trin

Når emnet bliver til et reelt projekt, bør arkitektur, eksisterende systemer og drift tidligt vurderes samlet.

Vi støtter ikke kun ved enkeltspørsmål, men også når kildekodeudsnit, legacy-komponenter eller portalidéer skal udvikles til et robust virksomhedsprojekt.

  • Eksisterende tilstand, målbillede og tekniske risici vurderes samlet.
  • REST, dataadgang, portaler og udrulning bliver ikke udskudt som efterfølgende opgaver.
  • De ser tidligt, hvilken vej der er økonomisk og driftsmæssigt bæredygtig.

Del indlæg

Del dette indlæg direkte

LinkedIn, X, XING, Facebook, WhatsApp og e-mail er straks tilgængelige. Til Instagram forbereder vi link og kort tekst.

E-mail

Instagram åbner i en ny fane. Linket og kortteksten kopieres på forhånd til udklipsholderen.

Skriv kommentar

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