Amazon AWS, oltre 280 servizi
SDK di servizi REST che coprono S3, EC2, Lambda, DynamoDB, SQS, SNS, CloudFormation e altro ancora. Inserisci la unit nel progetto e chiama il servizio con classi di richiesta e risposta tipizzate.
Vedi gli SDK AWS →Punta sgcOpenAPI a un documento OpenAPI 3.x. Il parser lo legge, il generatore produce un SDK Object Pascal nativo e il componente server OpenAPI pubblica i tuoi endpoint come specifica live.
Una specifica in ingresso, Pascal in uscita e un server a entrambe le estremità. Con voce narrante e sottotitoli. Non viene scaricato nulla finché non premi play.
Trasforma una specifica in codice Delphi e il codice Delphi in un server in esecuzione.
Non devi generare nulla per iniziare. Le quattro maggiori piattaforme cloud arrivano come SDK Pascal pronti all'uso dentro sgcOpenAPI, generati dalle specifiche ufficiali e mantenuti aggiornati.
SDK di servizi REST che coprono S3, EC2, Lambda, DynamoDB, SQS, SNS, CloudFormation e altro ancora. Inserisci la unit nel progetto e chiama il servizio con classi di richiesta e risposta tipizzate.
Vedi gli SDK AWS →Il set più ampio della libreria. Azure VM, Blob Storage, Functions, Cosmos DB, Key Vault e il resto del control plane di Azure, ognuno con il suo client Pascal generato.
Vedi gli SDK Azure →Compute Engine, Cloud Storage, BigQuery, Pub/Sub, Cloud Functions e altro ancora.
Vedi gli SDK Google →Office 365, Microsoft Teams, OneDrive, Outlook e Active Directory, tramite la Graph API.
Vedi gli SDK Microsoft →Se l'API pubblica un documento OpenAPI o Swagger, il generatore lo trasforma nello stesso tipo di unit Pascal tipizzata. Non esiste alcuna lista di API ammesse.
Funzionalità del generatore →Single, Team e Site includono il parser, il generatore di codice, il componente server OpenAPI e l'intera libreria di SDK precompilati. Nulla viene venduto separatamente.
Tutti gli SDK precompilati →Guide pratiche, da una specifica pubblica a un client Delphi che compila
Cinque passaggi, tutti dentro l'IDE. Niente Node.js, nessun generatore di codice Java, nessun template engine da imparare.
# 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 su un file locale o su un URL, in JSON o in YAML. Entrambi vengono letti in locale, e anche un documento Swagger 2.0 viene convertito in OpenAPI 3 in locale.TsgcOpenAPI legge il documento dentro Paths, Componenti, Security, Servers, Tags e Info, e registra in Warningstutto quello che non ha potuto rispettare. I puntatori $ref esterni vengono risolti prima da TsgcOpenAPI_Bundle.TsgcOpenAPI_Parser_Client_Pascal discende da quel reader e scrive una sola unit Pascal: un metodo per operazione, una classe di response per metodo, e una classe per ogni schema, con le descrizioni del documento come commenti.Source di sgcOpenAPI, da Delphi 7 a RAD Studio 13. Le response tipizzate richiedono XE7 o successivo.GetOpenAPIClient, imposta le credenziali su Autenticazione, e chiama l'operazione. La base URL è già incorporata a partire dalla voce servers del documento.Il generatore discende dal reader, quindi puoi anche creare tu stesso TsgcOpenAPI , percorrere il modello analizzato e costruirci sopra i tuoi strumenti. Il componente parser →
TsgcWSAPIServer_OpenAPI si aggancia a un TsgcHTTPServer, instrada le richieste in arrivo secondo il documento che hai caricato, le valida prima che il tuo gestore venga eseguito, e pubblica il documento e una Swagger UI dalla stessa porta.

GET /pets/{petId} arriva al tuo gestore OnRequest con aOperationId impostato a getPetById. GET /openapi.json restituisce il documento che hai caricato e GET /docs apre Swagger UI, attivati entrambi da Endpoint.ServeSpec e Endpoint.ServeSwaggerUI. Endpoint.BasePath sposta la coppia sotto un prefisso.

Carica un contratto JSON con LoadFromFile e smista in base all'operation id, oppure annota una classe Pascal con sgcServiceContract, sgcHttpGet, sgcRoute e sgcFromBody e lascia che sia TsgcOpenAPICodeFirstScanner costruisca il documento. Code-First richiede Delphi XE7 o successivo. Entrambe le demo si trovano in Demos\30.Server\.

Validation.ValidateRequest, ValidateRequired e ValidateRequestBody controllano la richiesta in arrivo rispetto al documento prima che il tuo gestore venga eseguito. OnValidationError ti passa l'operation id e l'elenco degli errori, più un flag Continue che decide se la richiesta viene rifiutata.

Le voci securityScheme del documento pilotano OnValidateAPIKey, OnValidateBasic e OnValidateBearer. Tu scrivi la ricerca delle credenziali, il componente fa il parsing della richiesta e risponde con lo status giusto quando la ricerca dà esito negativo.
Il server gira sullo stesso server HTTP di sgcWebSockets che ospita i tuoi endpoint WebSocket e i file statici. Una sola porta, un solo certificato TLS, un solo flusso di log. Il componente server OpenAPI →
Un unico prodotto per Delphi e C++ Builder: un parser OpenAPI 3.x, un generatore nativo di SDK Pascal, un componente server OpenAPI e oltre 1.195 SDK cloud precompilati. Codice sorgente completo, distribuzione senza royalty. Scegli in base alla dimensione del team.
Uno sviluppatore. Parser, generatore, componente server e ogni SDK precompilato.
Due sviluppatori. Lo stesso prodotto completo di Single.
Sviluppatori illimitati. Lo stesso prodotto completo di Single.
sgcOpenAPI ha una licenza propria. Parser, generatore di codice, componente server e tutti gli oltre 1.195 SDK precompilati sono inclusi in ogni livello.
Confronta livelli e prezziScelta da sviluppatori Delphi, C++ Builder, Lazarus e .NET in tutto il mondo.
La vostra libreria sgcWebSockets è molto utile e semplice da configurare. Continuate così!
sgcWebSockets è straordinario e il vostro supporto è il migliore!
Grazie mille per il vostro aiuto e supporto, adoro i vostri componenti.
Parser, generatore di codice, componente server OpenAPI e tutti gli oltre 1.195 SDK cloud precompilati, con un'unica licenza. Sorgente completo, distribuzione senza royalty, da Delphi 7 a RAD Studio 13.
Guida introduttivaFunzionalitàParserServerSDK precompilatiConfronto
sgcOpenAPI è una delle librerie di componenti eSeGeCe per Delphi, C++ Builder e .NET. Condividono le stesse convenzioni, includono il codice sorgente completo e si distribuiscono senza royalty.
WebSocket, HTTP/2, MQTT, AMQP, WebRTC, IA e oltre 30 integrazioni API. Il server HTTP su cui gira il componente server OpenAPI.
Componenti server REST, server OpenAPI e client OpenAPI per Delphi e C++ Builder. Pubblica API REST da un contratto OpenAPI 3.x, oppure consuma qualsiasi API descritta con OpenAPI. Autonomo, il runtime sgcWebSockets Core è incluso.
Componenti HTML e UI lato server su Bootstrap 5 e htmx. Costruisci l'interfaccia di amministrazione o la dashboard per i client REST che generi, senza un front end JavaScript.
Trasporto QUIC puro e un client e un server HTTP/3, con WebTransport. Esponi i client REST che generi su un trasporto QUIC/HTTP-3 per una latenza di connessione più bassa.
XAdES, PAdES, CAdES e ASiC per i documenti, Authenticode, ClickOnce, NuGet e VSIX per il codice. Firma i corpi di richiesta e risposta che la tua API si scambia.
Crea, modifica, visualizza, firma, oscura e convalida file PDF in puro Object Pascal, senza alcuna DLL da distribuire. Con licenza a parte.
Componenti Indy TCP/IP aggiornati con TLS moderno, IPv6 e HTTP/2, da Delphi 7 a 13. Il livello di trasporto sotto i client generati.
Pacchetti, componenti aggiuntivi e altro