Amazon AWS, 280+ Dienste
REST-Dienst-SDKs für S3, EC2, Lambda, DynamoDB, SQS, SNS, CloudFormation und mehr. Nimm die Unit ins Projekt auf und rufe den Dienst mit typisierten Request- und Response-Klassen auf.
AWS-SDKs ansehen →Richte sgcOpenAPI auf ein OpenAPI-3.x-Dokument. Der Parser liest es ein, der Generator erzeugt ein natives Object-Pascal-SDK, und die OpenAPI-Server-Komponente veröffentlicht deine eigenen Endpunkte wieder als aktive Spezifikation.
Eine Spezifikation rein, Pascal raus, und an beiden Enden ein Server. Mit Sprecher und Untertiteln. Nichts wird heruntergeladen, bevor du auf Play drückst.
Verwandle eine Spezifikation in Delphi-Code und Delphi-Code in einen laufenden Server.
Du musst nichts generieren, um loszulegen. Die vier größten Cloud-Plattformen liegen sgcOpenAPI als einsatzbereite Pascal-SDKs bei, aus den offiziellen Spezifikationen generiert und aktuell gehalten.
REST-Dienst-SDKs für S3, EC2, Lambda, DynamoDB, SQS, SNS, CloudFormation und mehr. Nimm die Unit ins Projekt auf und rufe den Dienst mit typisierten Request- und Response-Klassen auf.
AWS-SDKs ansehen →Die größte Sammlung der Bibliothek. Azure VMs, Blob Storage, Functions, Cosmos DB, Key Vault und der Rest der Azure Control Plane, jeweils als generierter Pascal-Client.
Azure-SDKs ansehen →Compute Engine, Cloud Storage, BigQuery, Pub/Sub, Cloud Functions und mehr.
Google-SDKs ansehen →Office 365, Microsoft Teams, OneDrive, Outlook und Active Directory, über die Graph API.
Microsoft-SDKs ansehen →Wenn die API ein OpenAPI- oder Swagger-Dokument veröffentlicht, macht der Generator daraus dieselbe Art typisierter Pascal-Unit. Es gibt keine Positivliste.
Generator-Funktionen →Single, Team und Site enthalten alle den Parser, den Code-Generator, die OpenAPI-Server-Komponente und die komplette Bibliothek vorgefertigter SDKs. Nichts wird separat verkauft.
Alle vorgefertigten SDKs →Ausgearbeitete Anleitungen, von der öffentlichen Spezifikation bis zum kompilierenden Delphi-Client
Fünf Schritte, alle in der IDE. Kein Node.js, kein Java-Code-Generator, keine Template-Engine, die du lernen musst.
# one input, one output, and you have a unit
> sgcOpenAPI.exe -i "api.github.com.json" -o "github.pas" -a 2
File successfully created github.pas
# -a 2 wires up token auth -u sets the base url
# -x drops operations -p prunes the classes they used
# -s emits a server stub instead of a client
# exit 0 ok, 5 bad input, 6 bad output, 7 not convertible
uses
github; // the unit you just generated
procedure TForm1.btnReposClick(Sender: TObject);
var
oResponse: TsgcOpenAPI_reposlistforauthenticateduser_Response;
oRepo: TsgcOpenAPI_repository_Class;
begin
GetOpenAPIClient.Authentication.Token.BearerToken := 'ghp_...';
oResponse := GetOpenAPIClient.reposlistforauthenticateduser(
'private', 'owner', 'all', 'full_name', '', 100, 1);
try
if oResponse.IsSuccessful then
for oRepo in oResponse.Successful.Items do
Memo1.Lines.Add(oRepo.Full_name)
else
Memo1.Lines.Add(IntToStr(oResponse.ResponseCode) + ' ' +
oResponse.ResponseError);
finally
oResponse.Free;
end;
end;
uses
sgcHTTP_Server, sgcHTTP_OpenAPI_Server, sgcWebSocket_Server_API_OpenAPI;
procedure TForm1.btnStartClick(Sender: TObject);
begin
FServer := TsgcHTTPServer.Create(Self);
FServer.Port := 8080;
FOpenAPI := TsgcWSAPIServer_OpenAPI.Create(Self);
FOpenAPI.OpenAPIOptions.Endpoint.ServeSpec := True;
FOpenAPI.OpenAPIOptions.Endpoint.ServeSwaggerUI := True;
FOpenAPI.OpenAPIOptions.Validation.ValidateRequest := True;
FOpenAPI.LoadFromFile('petstore.json');
FOpenAPI.OnRequest := OnOpenAPIRequest;
FOpenAPI.Server := FServer;
FServer.Active := True;
end;
// one event, dispatched by operation id
procedure TForm1.OnOpenAPIRequest(Sender: TObject;
const aOperationId: string;
const aContext: TsgcOpenAPIServerContext;
var Handled: Boolean);
begin
Handled := True;
if aOperationId = 'getPetById' then
aContext.RespondJSON(200,
FPets.Values[aContext.PathParamAsString('petId')])
else
Handled := False;
end;
-i auf eine lokale Datei oder eine URL, als JSON oder YAML. Beides wird lokal gelesen, und ein Swagger-2.0-Dokument wird ebenfalls lokal nach OpenAPI 3 konvertiert.TsgcOpenAPI liest das Dokument in Paths, Components, Security, Servers, Tags und Info, und hält alles, was sich nicht umsetzen ließ, in Warningsfest. Externe $ref-Verweise werden vorher von TsgcOpenAPI_Bundle.TsgcOpenAPI_Parser_Client_Pascal stammt von diesem Parser ab und schreibt eine einzige Pascal-Unit: eine Methode pro Operation, eine Response-Klasse pro Methode und eine Klasse für jedes Schema, mit den Beschreibungen aus dem Dokument als Kommentaren.Source -Ordner muss nichts im Bibliothekspfad liegen, von Delphi 7 bis RAD Studio 13. Typisierte Antworten brauchen XE7 oder neuer.GetOpenAPIClient, setze die Zugangsdaten auf Authentication, und ruf die Operation auf. Die Basis-URL steckt bereits drin, sie stammt aus dem servers -Eintrag des Dokuments.Der Generator stammt vom Parser ab, du kannst also auch selbst ein TsgcOpenAPI erzeugen, das geparste Modell durchlaufen und eigenes Tooling darauf aufbauen. Die Parser-Komponente →
TsgcWSAPIServer_OpenAPI hängt sich an einen TsgcHTTPServer, routet eingehende Requests anhand des Dokuments, das du geladen hast, validiert sie, bevor dein Handler läuft, und liefert das Dokument und eine Swagger UI über denselben Port aus.

GET /pets/{petId} erreicht deinen OnRequest Handler mit aOperationId gleich getPetById. GET /openapi.json liefert das Dokument zurück, das du geladen hast, und GET /docs öffnet Swagger UI, beide eingeschaltet über Endpoint.ServeSpec und Endpoint.ServeSwaggerUI. Endpoint.BasePath schiebt die beiden unter ein Präfix.

Lade einen JSON-Vertrag mit LoadFromFile und verteile nach der Operation-ID, oder annotiere eine Pascal-Klasse mit sgcServiceContract, sgcHttpGet, sgcRoute und sgcFromBody und lass TsgcOpenAPICodeFirstScanner das Dokument bauen. Code-First braucht Delphi XE7 oder neuer. Beide Demos liegen in Demos\30.Server\.

Validation.ValidateRequest, ValidateRequired und ValidateRequestBody prüfen den eingehenden Request gegen das Dokument, bevor dein Handler läuft. OnValidationError übergibt dir die Operation-ID und die Liste der Fehler, dazu ein Continue Flag, das entscheidet, ob der Request abgewiesen wird.

Die securityScheme -Einträge im Dokument steuern OnValidateAPIKey, OnValidateBasic und OnValidateBearer. Du schreibst die Prüfung der Zugangsdaten, die Komponente parst den Request und antwortet mit dem richtigen Status, wenn die Prüfung ablehnt.
Der Server läuft auf demselben sgcWebSockets-HTTP-Server, der deine WebSocket-Endpunkte und statischen Dateien hostet. Ein Port, ein TLS-Zertifikat, ein Log-Stream. Die OpenAPI-Server-Komponente →
Ein gebündeltes Produkt für Delphi und C++ Builder: ein OpenAPI-3.x-Parser, ein nativer Pascal-SDK-Generator, eine OpenAPI-Server-Komponente und über 1.195 vorgefertigte Cloud-SDKs. Vollständiger Quellcode, lizenzgebührenfreie Bereitstellung. Wähle nach Teamgröße.
Ein Entwickler. Parser, Generator, Server-Komponente und jedes vorgefertigte SDK.
Zwei Entwickler. Dasselbe komplette Produkt wie Single.
Unbegrenzt viele Entwickler. Dasselbe komplette Produkt wie Single.
sgcOpenAPI wird eigenständig lizenziert. Parser, Code-Generator, Server-Komponente und alle 1.195+ vorgefertigten SDKs sind in jeder Stufe enthalten.
Stufen und Preise vergleichenVertrauen von Delphi-, C++ Builder-, Lazarus- und .NET-Entwicklern weltweit.
Eure sgcWebSockets-Bibliothek ist sehr nützlich und einfach einzurichten. Macht weiter so!
sgcWebSockets ist großartig und euer Support ist der beste!
Vielen Dank für eure Hilfe und Unterstützung, ich liebe eure Komponenten.
Parser, Code-Generator, OpenAPI-Server-Komponente und alle 1.195+ vorgefertigten Cloud-SDKs, in einer Lizenz. Vollständiger Quellcode, lizenzgebührenfreie Bereitstellung, Delphi 7 bis RAD Studio 13.
Erste SchritteFunktionenParserServerVorgefertigte SDKsVergleich
sgcOpenAPI ist eine der eSeGeCe-Komponentenbibliotheken für Delphi, C++ Builder und .NET. Sie teilen dieselben Konventionen, werden mit vollständigem Quellcode ausgeliefert und lizenzgebührenfrei eingesetzt.
WebSocket, HTTP/2, MQTT, AMQP, WebRTC, KI und 30+ API-Integrationen. Der HTTP-Server, auf dem die OpenAPI-Server-Komponente läuft.
REST-Server-, OpenAPI-Server- und OpenAPI-Client-Komponenten für Delphi und C++ Builder. Veröffentliche REST-APIs aus einem OpenAPI-3.x-Vertrag, oder nutze jede über OpenAPI beschriebene API. Eigenständig, die sgcWebSockets Core Runtime ist enthalten.
Serverseitige HTML- und UI-Komponenten auf Bootstrap 5 und htmx. Baue die Admin- oder Dashboard-UI für die REST-Clients, die du generierst, ganz ohne JavaScript-Frontend.
Reiner QUIC-Transport und ein HTTP/3-Client und -Server, mit WebTransport. Stelle die von dir generierten REST-Clients über einen QUIC-/HTTP-3-Transport bereit, für geringere Verbindungslatenz.
XAdES, PAdES, CAdES und ASiC für Dokumente, Authenticode, ClickOnce, NuGet und VSIX für Code. Signiere die Request- und Response-Bodies, die deine API austauscht.
PDF-Dateien erstellen, bearbeiten, ansehen, signieren, schwärzen und validieren in reinem Object Pascal, ganz ohne DLL. Wird eigenständig lizenziert.
Aktualisierte Indy-TCP/IP-Komponenten mit moderner TLS-, IPv6- und HTTP/2-Unterstützung, für Delphi 7 bis 13. Die Transportschicht unter den generierten Clients.
Pakete, Add-ons und mehr