Amazon AWS, 280+ services
REST-service-SDK's voor S3, EC2, Lambda, DynamoDB, SQS, SNS, CloudFormation en meer. Zet de unit in je project en roep de service aan met getypeerde request- en response-classes.
Bekijk de AWS-SDK's →Spec erin, Pascal eruit.
Een specificatie erin, Pascal eruit, en aan beide kanten een server. Ingesproken en ondertiteld. Er wordt niets gedownload voordat je op afspelen drukt.
Zet een specificatie om in Delphi-code, en Delphi-code in een draaiende server.
Je hoeft niets te genereren om te beginnen. De vier grootste cloudplatforms worden als kant-en-klare Pascal-SDK's meegeleverd in sgcOpenAPI, gegenereerd uit de officiële specificaties en up-to-date gehouden.
REST-service-SDK's voor S3, EC2, Lambda, DynamoDB, SQS, SNS, CloudFormation en meer. Zet de unit in je project en roep de service aan met getypeerde request- en response-classes.
Bekijk de AWS-SDK's →De grootste set in de bibliotheek. Azure VM's, Blob Storage, Functions, Cosmos DB, Key Vault en de rest van de Azure-control-plane, elk een gegenereerde Pascal-client.
Bekijk de Azure-SDK's →Compute Engine, Cloud Storage, BigQuery, Pub/Sub, Cloud Functions en meer.
Bekijk de Google-SDK's →Office 365, Microsoft Teams, OneDrive, Outlook en Active Directory, via de Graph API.
Bekijk de Microsoft-SDK's →Als de API een OpenAPI- of Swagger-document publiceert, maakt de generator er dezelfde soort getypeerde Pascal-unit van. Er is geen allowlist.
Functies van de generator →Single, Team en Site bevatten allemaal de parser, de codegenerator, de OpenAPI-servercomponent en de volledige bibliotheek met kant-en-klare SDK's. Niets wordt apart verkocht.
Alle kant-en-klare SDK's →Uitgewerkte handleidingen, van een openbare specificatie tot een compilerende Delphi-client
Vijf stappen, allemaal binnen de IDE. Geen Node.js, geen Java-codegenerator, geen template-engine om te leren.
# 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 op een lokaal bestand of een URL, in JSON of YAML. Beide worden lokaal gelezen en een Swagger 2.0-document wordt ook lokaal naar OpenAPI 3 omgezet.TsgcOpenAPI leest het document in Paths, Components, Security, Servers, Tags en Info, en legt alles vast wat het niet kon verwerken in Warnings. Externe $ref pointers worden vooraf binnengehaald door TsgcOpenAPI_Bundle.TsgcOpenAPI_Parser_Client_Pascal stamt af van die lezer en schrijft één Pascal-unit: één methode per operatie, één response-klasse per methode, en een klasse voor elk schema, met de beschrijvingen uit het document als commentaar.Source map, op Delphi 7 tot en met RAD Studio 13. Getypeerde responses vereisen XE7 of hoger.GetOpenAPIClient, stel de inloggegevens in op Authentication, en roep de operatie aan. De basis-URL zit er al in, overgenomen uit de servers -entry van het document.De generator stamt af van de lezer, dus je kunt ook zelf TsgcOpenAPI aanmaken, het geparste model doorlopen en er je eigen tooling bovenop bouwen. De parsercomponent →
TsgcWSAPIServer_OpenAPI koppelt zich aan een TsgcHTTPServer, routeert binnenkomende verzoeken aan de hand van het geladen document, valideert ze voordat je handler draait en serveert het document en een Swagger UI vanaf dezelfde poort.

GET /pets/{petId} bereikt je OnRequest handler met aOperationId ingesteld op getPetById. GET /openapi.json geeft het geladen document terug en GET /docs opent Swagger UI, allebei ingeschakeld door Endpoint.ServeSpec en Endpoint.ServeSwaggerUI. Endpoint.BasePath verplaatst het paar onder een prefix.

Laad een JSON-contract met LoadFromFile en verwerk op operation-id, of annoteer een Pascal-klasse met sgcServiceContract, sgcHttpGet, sgcRoute en sgcFromBody en laat TsgcOpenAPICodeFirstScanner het document bouwen. Code-First vereist Delphi XE7 of hoger. Beide demo's staan in Demos\30.Server\.

Validation.ValidateRequest, ValidateRequired en ValidateRequestBody controleren het binnenkomende verzoek aan de hand van het document voordat je handler draait. OnValidationError geeft je de operation-id en de lijst met fouten, plus een Continue -vlag die bepaalt of het verzoek wordt geweigerd.

De securityScheme -entries in het document sturen OnValidateAPIKey, OnValidateBasic en OnValidateBearer. Jij schrijft de opzoeking van de inloggegevens, het component parst het verzoek en antwoordt met de juiste status als de opzoeking nee zegt.
De server draait op dezelfde sgcWebSockets HTTP-server die je WebSocket-endpoints en statische bestanden host. Eén poort, één TLS-certificaat, één logstroom. Het OpenAPI-servercomponent →
Eén gebundeld product voor Delphi en C++ Builder: een OpenAPI 3.x-parser, een native Pascal SDK-generator, een OpenAPI-servercomponent en 1.195+ kant-en-klare cloud-SDK's. Volledige broncode, royaltyvrije distributie. Kies op teamgrootte.
Eén ontwikkelaar. Parser, generator, servercomponent en elke kant-en-klare SDK.
Twee ontwikkelaars. Hetzelfde complete product als Single.
Onbeperkt aantal ontwikkelaars. Hetzelfde complete product als Single.
sgcOpenAPI wordt los gelicentieerd. Parser, codegenerator, servercomponent en alle 1.195+ kant-en-klare SDK's zijn in elk niveau inbegrepen.
Vergelijk niveaus en prijzenVertrouwd door Delphi-, C++ Builder-, Lazarus- en .NET-ontwikkelaars over de hele wereld.
Jullie sgcWebSockets-bibliotheek is erg handig en eenvoudig op te zetten. Ga zo door!
sgcWebSockets is geweldig en jullie support is de beste!
Heel erg bedankt voor jullie hulp en ondersteuning, ik ben dol op jullie componenten.
Parser, codegenerator, OpenAPI-servercomponent en alle 1.195+ kant-en-klare cloud-SDK's, op één licentie. Volledige broncode, royaltyvrije implementatie, Delphi 7 tot en met RAD Studio 13.
Aan de slagFunctiesParserServerKant-en-klare SDK'sVergelijking
sgcOpenAPI is een van de eSeGeCe-componentbibliotheken voor Delphi, C++ Builder en .NET. Ze delen conventies, worden met volledige broncode geleverd en worden royaltyvrij gedistribueerd.
WebSocket, HTTP/2, MQTT, AMQP, WebRTC, AI en 30+ API-integraties. De HTTP-server waarop het OpenAPI-servercomponent draait.
REST-server, OpenAPI-server en OpenAPI-clientcomponenten voor Delphi en C++ Builder. Publiceer REST-API's vanuit een OpenAPI 3.x-contract, of consumeer elke OpenAPI-beschreven API. Standalone, met de sgcWebSockets Core runtime inbegrepen.
Server-side HTML- en UI-componenten op Bootstrap 5 en htmx. Bouw de beheer- of dashboard-UI voor de REST-clients die je genereert, zonder JavaScript-front-end.
Pure QUIC-transport en een HTTP/3-client en -server, met WebTransport. Stel de REST-clients die je genereert bloot via een QUIC/HTTP-3-transport voor een lagere verbindingslatentie.
XAdES, PAdES, CAdES en ASiC voor documenten, Authenticode, ClickOnce, NuGet en VSIX voor code. Onderteken de request- en response-bodies die je API uitwisselt.
PDF-bestanden maken, bewerken, bekijken, ondertekenen, redigeren en valideren in pure Object Pascal, zonder DLL. Wordt los gelicentieerd.
Bijgewerkte Indy TCP/IP-componenten met moderne TLS, IPv6 en HTTP/2 voor Delphi 7 tot en met 13. De transportlaag onder de gegenereerde clients.
Pakketten, add-ons en meer