eSeGeCe — Enterprise-Kommunikationskomponenten für Delphi & .NET
IM FOKUS · sgcREST

REST-APIs aus einem OpenAPI-Vertrag, nativ in Delphi

Drei Komponenten decken zwei Aufgaben ab. TsgcHTTPRESTServer ist ein REST-Server mit CORS, optional zuschaltbaren /metrics- und /health-Endpunkten und eingebauter Mandanten-Auflösung pro Anfrage. TsgcWSAPIServer_OpenAPI lädt einen OpenAPI-3.x-Vertrag mit LoadFromFile und dispatcht, validiert und authentifiziert jede Anfrage dagegen. TsgcOpenAPI_Client ist die Basisklasse hinter typisierten Clients für jede über OpenAPI beschriebene API. Eigenständig ist die sgcWebSockets Core Runtime enthalten.

  • 3 Komponentenklassen
  • REST Server · OpenAPI Server · OpenAPI Client
  • CORS, /metrics, /health, Mandantenfähigkeit
  • Delphi 7 bis 13 · C++ Builder

Zwei Paletten-Komponenten, eine Client-Basisklasse

sgcREST ist ein eigenständiges Paket. Es bringt die sgcWebSockets Core Runtime mit, auf der es aufbaut, und jede Lizenz wird mit vollständigem Quellcode ausgeliefert, sodass sich der REST-Dispatch und die OpenAPI-Validierung in deinem eigenen Debugger Schritt für Schritt nachvollziehen lassen.

2 Paletten-Komponenten TsgcHTTPRESTServer auf der SGC-REST-Seite, TsgcWSAPIServer_OpenAPI auf der SGC-OpenAPI-Seite.
3 Klassen insgesamt REST-Server, OpenAPI-Server und die OpenAPI-Client-Basisklasse.
2 Eingebaute Endpunkte /metrics und /health, optional zuschaltbar und hinter der Authentication ausgeliefert, die der Server bereits erzwingt.
1 Eigenständiger Installer Die sgcWebSockets Core Runtime und die HTTP-/TLS-Schicht werden beide im Paket mitgeliefert.
100% Quellcode enthalten Jede Lizenz enthält den vollständigen Quellcode aller drei Komponenten und der mitgelieferten Runtime.
sgcREST

REST-Server- und OpenAPI-Server-/-Client-Komponenten für Delphi und C++ Builder. Ein eigenständiges Paket mit enthaltener sgcWebSockets Core Runtime, vollständigem Quellcode und royaltyfreier Bereitstellung.

Veröffentliche eine API, oder konsumiere eine

Die drei Klassen teilen sich sauber nach Richtung auf. Der REST-Server und der OpenAPI-Server veröffentlichen Endpunkte, die deine Aufrufer erreichen. Die OpenAPI-Client-Basisklasse ist das, was generierte SDKs verwenden, um die Endpunkte anderer aufzurufen.

REST Server

CORS, Metrics, Health und Tenancy, eingebaut

TsgcHTTPRESTServer erweitert den sgcWebSockets-HTTP-Server um das alltägliche Handwerkszeug, das eine REST-API braucht: CORSOptions für Cross-Origin-Anfragen, optional zuschaltbare /metrics- und /health-Endpunkte über ServerStats, und Mandanten-Auflösung pro Anfrage über Tenancy, nach Host, Pfad, Header oder JWT-Claim. Tenant macht den aufgelösten Wert für deine eigenen Request-Handler zugänglich.

Den REST-Server ansehen →
OpenAPI Server

Lade einen Vertrag, dispatche und validiere jede Anfrage

TsgcWSAPIServer_OpenAPI liest ein OpenAPI-3.x-Dokument mit LoadFromFile oder LoadFromString und verwandelt es in einen lebendigen Dispatcher: Jede eingehende Anfrage wird gegen den Vertrag abgeglichen und anhand der Operation-ID an deinen OnRequest-Handler weitergeleitet. OnValidationError, OnAuthenticate, OnValidateAPIKey, OnValidateBasic und OnValidateBearer decken die Sicherheitsschemata ab, die die Spezifikation deklariert, und OnBeforeRequest/OnAfterRequest klammern den Aufruf ein.

Den OpenAPI-Server ansehen →
OpenAPI Client

Eine Basisklasse hinter jedem generierten SDK

TsgcOpenAPI_Client ist der generische Laufzeit-Client für jede über OpenAPI beschriebene API: Authentication deckt Basic-Auth, Bearer-Token, generisches OAuth2 und JWT ab, und HTTP_REQUEST sowie HTTP_REQUEST_Async führen den Aufruf aus. Richte SetBaseURL auf einen Vertrag, den du geladen oder selbst generiert hast, und er ist einsatzbereit.

Sieh, was möglich ist →
Escape hatch

Jeder Callback, den die Spezifikation braucht

OnException fängt Handler-Fehler ab, bevor sie auf die Leitung gehen, und die Validierungs- und Authentifizierungs-Ereignisse erhalten alle den geparsten TsgcOpenAPIServerContext, mit PathParams, QueryParams und RespondJSON, sodass dir nichts darüber verborgen bleibt, warum ein Aufruf akzeptiert oder abgelehnt wurde.

Die Validierungsoberfläche →
Plattformübergreifend

Fünf Plattformen, eine Runtime

Der REST-Server und der OpenAPI-Server sind TsgcHTTPServer-Nachfahren, und der OpenAPI-Client läuft auf demselben HTTPS-Stack wie der Rest der Core Runtime. Von Delphi 7 bis RAD Studio 13 und unter C++ Builder.

Die Funktionsmatrix →

Referenzseiten zu jeder Komponente:

Veröffentliche einen Endpunkt, oder veröffentliche einen Vertrag

Der REST-Server reicht dir die Anfrage direkt weiter. Der OpenAPI-Server reicht dir eine validierte, bereits zugeordnete Operation. Beide kompilieren gleich in Delphi 7 bis 13 und C++ Builder.

uses
  sgcHTTP_REST_Server, sgcHTTP_REST_Server_Stats;
var
  RESTServer: TsgcHTTPRESTServer;
  Stats: TsgcHTTPServerStats;
begin
  // REST server: CORS, health/metrics and tenancy in one component
  RESTServer := TsgcHTTPRESTServer.Create(nil);
  Stats := TsgcHTTPServerStats.Create(nil);
  Stats.Endpoints.Health.Enabled := True;

  RESTServer.Port := 8080;
  RESTServer.CORSOptions.Enabled := True;
  RESTServer.CORSOptions.AllowOrigins := 'https://app.example.com';
  RESTServer.ServerStats := Stats;
  RESTServer.OnCommandGet := RESTServerCommandGet;
  RESTServer.Active := True;
end;

procedure TForm1.RESTServerCommandGet(AContext: TIdContext;
  ARequestInfo: TIdHTTPRequestInfo; AResponseInfo: TIdHTTPResponseInfo);
begin
  AResponseInfo.ContentText := '{"status":"ok"}';
end;
uses
  sgcWebSocket_Server_API_OpenAPI, sgcHTTP_Server;
var
  OpenAPIServer: TsgcWSAPIServer_OpenAPI;
begin
  // OpenAPI server: load the contract, dispatch by operation id
  OpenAPIServer := TsgcWSAPIServer_OpenAPI.Create(nil);
  OpenAPIServer.Server := sgcHTTPServer1;
  OpenAPIServer.LoadFromFile('petstore.yaml');
  OpenAPIServer.OnRequest := OpenAPIServerRequest;

  sgcHTTPServer1.Port := 8080;
  sgcHTTPServer1.Active := True;
end;

procedure TForm1.OpenAPIServerRequest(Sender: TObject;
  const aOperationId: string; const aContext: TsgcOpenAPIServerContext;
  var Handled: Boolean);
begin
  if aOperationId = 'getPetById' then
  begin
    aContext.RespondJSON(200,
      '{"id":"' + aContext.PathParamAsString('petId') + '","name":"Rex"}');
    Handled := True;
  end;
end;

Dieselbe Form in Object Pascal und in C++ Builder. Die vollständige Funktionsmatrix →

Zwei Dinge, die du vorher wissen solltest

Was sgcREST von dir braucht, und was nicht. Beide Antworten sind kurz, und beide stehen auf dieser Seite statt im Kleingedruckten.

Drei Komponenten, zwei Aufgaben
Komponente                          Rolle
TsgcHTTPRESTServer                  veröffentlicht eine REST-API: CORS,
                                       /metrics, /health, Tenancy
TsgcWSAPIServer_OpenAPI             veröffentlicht eine REST-API aus
                                       einem OpenAPI-3.x-Vertrag
TsgcOpenAPI_Client                  konsumiert jede über OpenAPI
                                       beschriebene API

Beide Server-Komponenten sind TsgcHTTPServer-
  Nachfahren, sie hängen sich also an denselben Port,
  dieselben TLSOptions und dieselbe Authentication,
  die deine anderen sgcWebSockets-Server bereits nutzen.

sgcREST ist eigenständig

Eigenständig ist die sgcWebSockets Core Runtime enthalten: der HTTP-/TLS-Server-Stack, auf dem der REST-Server und der OpenAPI-Server beide laufen, und die JSON-Schicht, mit der der OpenAPI-Client Antworten dekodiert. Ein Installer, vollständiger Quellcode im Paket.

REST-Server und OpenAPI-Server teilen eine Basis

TsgcHTTPRESTServer und der HTTP-Server, an den sich ein OpenAPI-Server hängt, sind beide TsgcHTTPServer-Nachfahren, CORS, TLS, Authentication und die Request-Pipeline verhalten sich also gleich, egal welcher von beiden deine API veröffentlicht.

Der OpenAPI-Client braucht nur den Vertrag

TsgcOpenAPI_Client löst Pfade, Header und Authentifizierung direkt aus dem OpenAPI-Dokument auf, über den reinen HTTPS-Stack der Core Runtime.

Delphi und C++ Builder

sgcREST richtet sich an Delphi 7 bis RAD Studio 13 und C++ Builder. Der REST-Server steckt außerdem in sgcWebSockets Professional und höher, und der OpenAPI-Server und -Client stecken auch im bestehenden sgcOpenAPI-Paket, eine bestehende Lizenz deckt dich also möglicherweise bereits ab. Der kostenlose Trial-Installer ist der sgcWebSockets-All-Access-Trial, alle drei Klassen lassen sich also schon heute evaluieren.

OpenAPI 3.x CORS Mandantenfähigkeit /metrics & /health Vollständiger Quellcode

Jede Komponente und Eigenschaft →

sgcREST implementiert die REST- und OpenAPI-Oberflächen, die dein Vertrag beschreibt, statt einen Codegenerator zu umhüllen, den du nicht kontrollierst, Anfragen, Validierung und Dispatch sind also allesamt erstklassige Methoden und Ereignisse, und vollständiger Quellcode bedeutet, dass nichts dazwischen eine Blackbox ist.

Dreizehn Bibliotheken, ein Werkzeugkasten

sgcREST ist eine von dreizehn eSeGeCe-Komponentenbibliotheken für Delphi, C++ Builder und .NET. Sie teilen dieselben Konventionen, werden mit vollständigem Quellcode ausgeliefert und lassen sich royaltyfrei verteilen.

sgcREST

REST-Server-, OpenAPI-Server- und OpenAPI-Client-Komponenten für Delphi und C++ Builder. Eigenständig, die sgcWebSockets Core Runtime ist enthalten.

Mehr erfahren →

sgcHTTP

HTTP/2-Client, gRPC-Client sowie Clients für Google Cloud Pub/Sub, Calendar und FCM für Delphi und C++ Builder. Eigenständig, die sgcWebSockets Core Runtime ist enthalten.

Mehr erfahren →

sgcAuth

OAuth2-Client, JWT-Client und WebAuthn-Unterstützung für Delphi und C++ Builder. Eigenständig, die sgcWebSockets Core Runtime ist enthalten.

Mehr erfahren →

sgcWebSockets

WebSocket, HTTP/2, MQTT, AMQP, WebRTC, KI und 30+ API-Integrationen für Delphi, C++ Builder, Lazarus und .NET. Auch die Enterprise-Edition enthält gRPC.

Mehr erfahren →

sgcMQ

Client-Komponenten für MQTT, AMQP 0.9.1 und 1.0, Apache Kafka und STOMP für Delphi und C++ Builder. Eigenständig, die sgcWebSockets Core Runtime ist enthalten.

Mehr erfahren →

sgcSocial

Telegram- und WhatsApp-Business-Client-Komponenten für Delphi und C++ Builder. Eigenständig, die sgcWebSockets Core Runtime ist enthalten.

Mehr erfahren →

sgcHTML

Serverseitige HTML- und UI-Komponenten auf Bootstrap 5 und htmx für Delphi, C++ Builder und .NET.

Mehr erfahren →

sgcQUIC

Reiner QUIC-Transport und ein HTTP/3-Client und -Server, mit WebTransport. Ein Add-on zu sgcWebSockets Enterprise.

Mehr erfahren →

sgcAI

Komponenten für KI, LLM und MCP für Delphi und C++ Builder. Sieben LLM-Anbieter hinter einer einzigen Komponente, dazu MCP, Embeddings und Sprache. Eigenständig, die sgcWebSockets Core Runtime ist enthalten.

Mehr erfahren →

sgcOpenAPI

OpenAPI-3.x-Parser, nativer Pascal-SDK-Generator, OpenAPI-Server-Komponente und 1.195+ vorgefertigte Cloud-SDKs.

Mehr erfahren →

sgcSign

XAdES, PAdES, CAdES und ASiC für Dokumente, Authenticode, ClickOnce, NuGet und VSIX für Code.

Mehr erfahren →

sgcBiometrics

Windows Hello, Fingerabdrucksensoren und das Windows Biometric Framework für Delphi und C++ Builder.

Mehr erfahren →

sgcIndy

Aktualisierte Indy-TCP/IP-Komponenten mit modernem TLS, IPv6 und HTTP/2 für Delphi 7 bis 13.

Mehr erfahren →

Preise und Lizenzen ansehen Kostenlose Testversion herunterladen

Was Entwickler sagen

Vertrauen von Delphi-, C++ Builder-, Lazarus- und .NET-Entwicklern weltweit.

Eure sgcWebSockets-Bibliothek ist sehr nützlich und einfach einzurichten. Macht weiter so!

Simone Moretti Delphi-Entwickler

sgcWebSockets ist großartig und euer Support ist der beste!

Christian Meyer Gründer & CTO

Vielen Dank für eure Hilfe und Unterstützung, ich liebe eure Komponenten.

Mark Steinfeld CTO

Du siehst gerade die Ansicht REST & OpenAPI von eSeGeCe.

Zeig mir eine andere Perspektive →

REST-APIs, OpenAPI-Verträge, nativer Code

Ein REST-Server, ein OpenAPI-Server und ein OpenAPI-Client, mit enthaltener sgcWebSockets Core Runtime und vollständigem Quellcode im Lieferumfang.