iToverDose/Software· 4 JUNI 2026 · 04:03

REST-APIs mit Pascal und Horse: Backend-Entwicklung ohne Umwege

Entdecken Sie, wie Sie mit dem leichten Framework Horse REST-APIs in Pascal entwickeln – ganz ohne klassische Server-Infrastruktur. Praktische Beispiele zeigen den Einstieg mit CrabPascal.

DEV Community3 min0 Kommentare

Moderne Backend-Entwicklung muss nicht zwingend in JavaScript, Python oder Go erfolgen. Mit dem Pascal-Framework Horse und der Runtime CrabPascal lassen sich REST-APIs direkt aus .dpr-Dateien heraus betreiben – ohne IIS, Apache oder externe Abhängigkeiten. Die Kombination aus der vertrauten Syntax von Delphi und der Leistungsfähigkeit von Horse eröffnet Pascal-Entwicklern neue Wege für die serverseitige Programmierung.

Warum Horse in CrabPascal?

Horse ist ein schlankes HTTP-Framework, das besonders im Delphi-Ökosystem beliebt ist. Es bietet Routing, JSON-Unterstützung und Middleware-ähnliche Handler – alles direkt einsatzbereit im CrabPascal-Ökosystem. Die Runtime-Compilation übernimmt der interne HTTP-Stack, sodass keine zusätzlichen Tools wie gcc erforderlich sind. Die mitgelieferten Beispiele decken typische Anwendungsfälle ab:

  • examples/crud/ – Vollständige CRUD-Operationen für Produkte auf Port 9000
  • examples/time-server/ – Einfacher Endpunkt zur Abfrage von Zeit und Datum auf Port 9001
  • examples/agenda/ – Kontaktverwaltung auf Port 9000

Alle Beispiele lassen sich mit wenigen Befehlen starten und testen.

Minimale REST-API in Pascal

Ein minimaler API-Server in Pascal besteht aus nur wenigen Zeilen Code. Die Implementierung nutzt das Horse-Framework und die System.JSON-Bibliothek für die Antwortformatierung. Der folgende Ausschnitt zeigt die Definition eines einfachen Ping-Endpunkts:

program SimpleAPI;
uses 
  Horse, 
  System.JSON;

begin
  THorse.Get('/ping', 
    procedure(Req: THorseRequest; Res: THorseResponse; Next: TNextProc) 
    var J: TJSONObject;
    begin
      J := TJSONObject.Create;
      J.AddPair('message', 'pong');
      Res.Send(J.ToJSON);
      J.Free;
    end
  );
  THorse.Listen(9000);
end.

Der Server wird mit dem Befehl crab-pascal run SimpleAPI.dpr gestartet. Ein Test mit curl bestätigt die Funktionsweise:

curl 

Die erwartete Antwort lautet:

{"message":"pong"}

Praktisches CRUD-Beispiel aus der Praxis

Das Repository enthält ein vollständiges CRUD-Beispiel für ein Produktmanagement-System. Der folgende Codeausschnitt zeigt die Implementierung eines Endpunkts zum Erstellen neuer Produkte:

THorse.Post('/produtos', 
  procedure(Req, Res, Next) 
  var json: TJSONObject;
  begin
    json := Req.Body<TJSONObject>;
    Res.Send(
      TProdutoService.CriarProduto(
        json.GetValue('nome').Value,
        json.GetValue('categoria').Value,
        StrToFloatDef(json.GetValue('preco').Value, 0),
        StrToIntDef(json.GetValue('estoque').Value, 0)
      )
    );
  end
);

Der Server wird im Verzeichnis examples/crud/ mit folgendem Befehl gestartet:

cd examples/crud
crab-pascal run crud.dpr

Testen der API mit curl

Die API lässt sich bequem mit curl testen. Die folgenden Befehle demonstrieren typische Operationen:

  • Alle Produkte auflisten:
  curl 
  • Neues Produkt erstellen:
  curl -X POST  \
    -H "Content-Type: application/json" \
    -d '{"nome":"Notebook","categoria":"Eletrônicos","preco":3499.90,"estoque":10}'
  • Produkt nach ID abfragen:
  curl 

Integration in Postman für Regressionstests

Für eine strukturierte API-Entwicklung eignet sich die Integration in Postman. Nach dem Start des Servers können die curl-Befehle direkt in Postman importiert werden:

  1. Server mit crab-pascal run crud.dpr starten.
  2. In Postman Import → Raw text auswählen und die curl-Befehle einfügen.
  3. Die Anfragen als Collection speichern, um Regressionstests zu automatisieren.

Die offizielle Dokumentation von Mintlify stellt eine vollständige Postman-Collection für alle Beispiel-APIs bereit.

Konfiguration und Port-Verwaltung

Die Standardport-Konfiguration lässt sich in der Datei crabpascal.toml anpassen. Dies ermöglicht die gleichzeitige Ausführung mehrerer Server auf unterschiedlichen Ports:

[runtime]
default_http_port = 9000

Durch Anpassung der Ports können mehrere Instanzen lokal betrieben werden, ohne Konflikte zu verursachen.

Einschränkungen und Ausblick

Aktuell unterstützt CrabPascal mit Horse die Kernfunktionen Routing und JSON-Verarbeitung. Nicht alle Delphi-Middleware-Plugins sind bereits kompatibel. Für neue HTTP-Features empfiehlt sich ein Blick in die Release Notes der aktuellen Sprints. Dennoch eignet sich die Kombination ideal für Pascal-Entwickler, die REST-APIs lernen oder Backend-Prototypen erstellen möchten. Die mitgelieferten Beispiele sind vollständig funktionsfähig und bieten einen soliden Einstieg.

Pascal + Horse + CrabPascal ermöglichen die Entwicklung von Backend-Skripten, die sich für Delphi-Entwickler natürlich anfühlen – und das in einem einzigen Rust-kompilierten Binary. Beginnen Sie mit dem Beispiel examples/crud/, testen Sie die Endpunkte und entwickeln Sie Ihre eigene API weiter.

KI-Zusammenfassung

Pascal dilinde REST API geliştirmeye meraklı mısınız? Horse framework ve CrabPascal ile sıfırdan API oluşturarak backend geliştirmenin inceliklerini keşfedin.

Kommentare

00
KOMMENTAR SCHREIBEN
ID #6Y0CQW

0 / 1200 ZEICHEN

Menschen-Check

2 + 4 = ?

Erscheint nach redaktioneller Prüfung

Moderation · Spam-Schutz aktiv

Noch keine Kommentare. Sei der erste.