sgcREST: componenti REST API Server e OpenAPI per Delphi e C++ Builder
Prodotto autonomo Server REST e OpenAPI

sgcREST: componenti REST API Server e OpenAPI per Delphi e C++ Builder

Due compiti, sette classi. TsgcHTTPRESTServer è un server API REST con gestione CORS e tre companion collegabili: statistiche delle richieste, multi-tenancy e un archivio utenti locale. Accanto ad esso, un motore OpenAPI serve un'API direttamente da uno spec, oppure genera quello spec da una classe Delphi con attributi, e TsgcOpenAPI_Client consuma qualsiasi API descritta con OpenAPI. sgcREST è autonomo, include il runtime sgcWebSockets Core su cui è costruita ogni classe.

Codice sorgente completo
Da Delphi 7 a 13 e C++ Builder
Runtime incluso sgcWebSockets Core Il runtime HTTP, TLS e JSON sotto ogni classe
Server REST TsgcHTTPRESTServer
OpenAPI TsgcOpenAPI_Client
4 Componenti nella palette Server REST, statistiche, tenancy e utenti, una sola pagina nella palette
7 Classi totali Famiglia del server REST, motore del server OpenAPI e client OpenAPI
4 Schemi di autenticazione del client Basic auth, bearer token, OAuth2 e JWT generici integrati
100% Codice sorgente incluso Tutte e sette le classi e il runtime Core incluso
12 Mesi di aggiornamenti Ogni versione pubblicata mentre la licenza è attiva

Due cose che vale la pena sapere subito

Cosa richiede sgcREST da te, e cosa no. Entrambe le risposte sono brevi.

sgcREST è autosufficiente

Autonomo, include il runtime sgcWebSockets Core: lo stack server e client HTTP/TLS su cui girano il server REST e ogni classe OpenAPI, e lo strato JSON che serializza ogni richiesta e risposta. Un solo SKU, un solo installer, e sgcREST gira sulla libreria Indy standard inclusa in RAD Studio.

Il codice sorgente completo è incluso in ogni licenza, così il server REST, i suoi companion e il motore OpenAPI si possono seguire passo passo nel tuo debugger invece di sparire dentro un binario.

Un requisito di versione

L'OpenAPI code-first richiede Delphi XE7+

Generare uno spec OpenAPI da una classe Delphi con attributi si basa sulla RTTI arrivata con Delphi XE7, quindi TsgcOpenAPICodeFirstScanner e TsgcOpenAPICodeFirstDispatcher compilano da XE7 in su. Il server REST e i suoi companion, e il motore OpenAPI spec-first che instrada da un documento JSON o YAML che hai già, girano su ogni compilatore supportato, da Delphi 7 a 13.

Non hai un documento OpenAPI da cui partire? Scrivi prima la classe Delphi e lascia che sia lo scanner a generarne uno, è esattamente questo lo scopo del code-first su XE7 e successivi.

Quattro componenti nella palette, tre classi solo-codice

Il server REST e i suoi tre companion sono componenti non visuali sulla pagina della palette SGC REST, dichiarati nelle unità sgcHTTP_REST_Server*. Metti TsgcHTTPRESTServer su una form o crealo da codice, poi aggancia ServerStats e Tenancy quando servono. Il motore del server OpenAPI e la classe del client OpenAPI vivono nelle unità sgcHTTP_OpenAPI_* come classi solo-codice, non c'è nulla da mettere su una form per quelle: creane una, configurala, e chiama i suoi metodi direttamente.

Server REST4 componenti

Un server, tre companion da agganciare quando servono

TsgcHTTPRESTServer estende il TsgcHTTPServer standard con la gestione CORS tramite CORSOptions, e due proprietà per companion opzionali: ServerStats e Tenancy. TsgcHTTPServerStats conta ogni richiesta per classe di stato, traccia la latenza minima, media e massima, e serve un endpoint /metrics in formato Prometheus più un endpoint JSON /health, con GetEndpointStats per una ripartizione per singola route. TsgcHTTPServer_Tenancy risolve il tenant del chiamante dal nome host, un segmento del path, un header della richiesta o un claim JWT, e la proprietà Tenant del server stesso legge il risultato per la richiesta in corso. TsgcHTTPServer_Users è un quarto companion indipendente: un archivio di account locale con AddUser, ValidateCredentials, tag di ruolo e hashing salato delle password, con cifratura opzionale a riposo, interrogato direttamente da un route handler invece di essere collegato al server come proprietà.

Server OpenAPI2 modi per definire un'API

Servi uno spec che hai già, oppure generane uno dal tuo codice

Spec-first: carica un documento OpenAPI 3.0 o 3.1 e TsgcOpenAPIRouteTable costruisce automaticamente la tabella delle route dalla sua sezione paths. Una richiesta abbinata arriva come TsgcOpenAPIServerContext, con accesso tipizzato ai parametri di path e query, helper per il body e RespondJSON/RespondError, TsgcOpenAPIServerHandler avvolge ogni chiamata in BeforeHandle, AfterHandle e HandleException, e TsgcOpenAPIJSONValidator verifica body, parametri query e path rispetto agli JSON Schema dichiarati dallo spec. Il code-first capovolge la fonte di verità: annota una semplice classe Delphi con gli attributi sgcServiceContract, sgcRoute, sgcHttpGet/sgcHttpPost e sgcFromPath/sgcFromQuery/sgcFromBody, e TsgcOpenAPICodeFirstScanner.GenerateSpec produce il documento OpenAPI direttamente dalla sua RTTI, senza YAML da scrivere a mano. Abbinalo a TsgcOpenAPICodeFirstDispatcher e i metodi annotati vengono invocati direttamente per ogni operazione, senza catene di dispatch manuali. Il code-first richiede Delphi XE7 o successivo.

TsgcOpenAPIServerHandler TsgcOpenAPICodeFirstScanner Il code-first richiede Delphi XE7+
Client OpenAPI1 classe

Consuma qualsiasi API descritta con OpenAPI

TsgcOpenAPI_Client è un client runtime generico per qualsiasi endpoint descritto da un documento OpenAPI: HTTP_REQUEST porta la chiamata, Authentication copre l'autenticazione Basic e i bearer token più OAuth2 e JWT generici, e OnBeforeRequest, OnUpload e OnDownload la tracciano.

Un server, companion componibili

Le sette classi si dividono nettamente per ruolo. Il server REST porta il traffico HTTP, tre companion aggiungono ciò di cui un'API in produzione ha bisogno, e il motore OpenAPI trasforma uno spec, scritto o generato, in una tabella delle route funzionante.

Il server REST è un TsgcHTTPServer con delle aggiunte

TsgcHTTPRESTServer eredita i binding, la gestione TLS e HTTP/2 del server HTTP semplice incluso in ogni edizione di sgcWebSockets, e aggiunge la gestione CORS più due companion agganciabili sopra, così un'API REST ottiene metriche, controlli di salute e multi-tenancy senza un framework separato.

Statistiche, tenancy e utenti sono companion, non funzionalità integrate

TsgcHTTPServerStats, TsgcHTTPServer_Tenancy e TsgcHTTPServer_Users sono componenti separati. Aggancia quelli di cui una data API ha bisogno e lascia fuori il resto, un companion agganciato ma non configurato non costa nulla al server da verificare.

Spec-first e code-first finiscono nella stessa tabella delle route

Che il documento OpenAPI provenga da un file caricato o da TsgcOpenAPICodeFirstScanner.GenerateSpec che esamina una classe con attributi, entrambi sono JSON, e la stessa tabella delle route e lo stesso contesto di richiesta servono l'uno o l'altro. Solo lo scanner code-first in sé richiede Delphi XE7 o successivo.

Il runtime Core è nella confezione

Autonomo, include il runtime sgcWebSockets Core. Contribuisce lo stack HTTP/TLS su cui girano il server REST e ogni classe OpenAPI, e il suo codice sorgente completo fa parte del package come tutto il resto.

Un server REST e un client OpenAPI, fianco a fianco

Il server REST è dichiarato in sgcHTTP_REST_Server, il client OpenAPI in sgcHTTP_OpenAPI_Client. Lo stesso codice compila in Delphi 7-13 e in C++ Builder.

uses
  sgcHTTP_REST_Server, sgcHTTP_OpenAPI_Client;

var
  RESTServer: TsgcHTTPRESTServer;
  APIClient: TsgcOpenAPI_Client;
  Request: TsgcOpenAPIRequest;
  Response: TsgcOpenAPIResponse;
begin
  // REST server: CORS on, stats and health/metrics wired in
  RESTServer := TsgcHTTPRESTServer.Create(nil);
  RESTServer.Bindings.Add.Port := 8080;
  RESTServer.CORSOptions.Enabled := True;
  RESTServer.ServerStats := HTTPServerStats1;
  RESTServer.Active := True;

  // OpenAPI client: call any OpenAPI-described API with basic auth
  APIClient := TsgcOpenAPI_Client.Create(nil);
  APIClient.SetBaseURL('https://api.example.com');
  APIClient.Authentication.Basic.Enabled := True;
  APIClient.Authentication.Basic.Username := 'apiuser';
  APIClient.Authentication.Basic.Password := '...';

  Request := TsgcOpenAPIRequest.Create;
  Response := TsgcOpenAPIResponse.Create;
  APIClient.HTTP_REQUEST(Request, Response);
end;
// include: sgcHTTP_REST_Server.hpp, sgcHTTP_OpenAPI_Client.hpp

// REST server: CORS on, stats and health/metrics wired in
TsgcHTTPRESTServer *RESTServer = new TsgcHTTPRESTServer(this);
RESTServer->Bindings->Add()->Port = 8080;
RESTServer->CORSOptions->Enabled = true;
RESTServer->ServerStats = HTTPServerStats1;
RESTServer->Active = true;

// OpenAPI client: call any OpenAPI-described API with basic auth
TsgcOpenAPI_Client *APIClient = new TsgcOpenAPI_Client(this);
APIClient->SetBaseURL("https://api.example.com");
APIClient->Authentication->Basic->Enabled = true;
APIClient->Authentication->Basic->Username = "apiuser";
APIClient->Authentication->Basic->Password = "...";

TsgcOpenAPIRequest *Request = new TsgcOpenAPIRequest();
TsgcOpenAPIResponse *Response = new TsgcOpenAPIResponse();
APIClient->HTTP_REQUEST(Request, Response);

Nessun componente aggiuntivo, ogni piattaforma

Tutte e sette le classi girano sulla libreria Indy standard inclusa in RAD Studio, quindi l'intera gamma di piattaforme già coperta da sgcWebSockets è disponibile senza bisogno di alcun componente aggiuntivo.

Famiglia del server REST TsgcHTTPRESTServer, ServerStats, Tenancy & Users
Windows Win32 Windows Win64 Linux64 macOS iOS Android
Famiglia del server e client OpenAPI Spec-first, code-first e la classe del client OpenAPI
Windows Win32 Windows Win64 Linux64 macOS iOS Android
Supporto IDE Un solo albero dei sorgenti, package di design-time per ogni versione
Da Delphi 7 a 13 C++ Builder
Code-first OpenAPI Richiede la RTTI arrivata con Delphi XE7
Da Delphi XE7 a 13
Installer di prova La versione di prova All-Access di sgcWebSockets include i componenti sgcREST
Un solo download, tutte e sette le classi

Scarica l'installer di prova →

Un package autonomo

sgcREST viene concesso in licenza da solo, a partire da €249 per un singolo sviluppatore. Tutte le licenze includono il codice sorgente completo, 1 anno di aggiornamenti e uno sconto sul rinnovo dal 50% al 70%: il 50% se rinnovi un pacchetto, il 60% con due, il 70% con tre o più. sgcAI, sgcMQ, sgcSocial, sgcAuth, sgcHTTP e sgcREST contano ciascuno come un pacchetto. sgcREST è incluso anche nel bundle All-Access.

sgcREST

€249

Licenze Single, Team e Site disponibili.

  • Server REST con CORS, statistiche, tenancy e utenti
  • Server OpenAPI, spec-first e code-first
  • Client OpenAPI per qualsiasi API descritta con OpenAPI
  • Runtime sgcWebSockets Core incluso
  • Da Delphi 7 a 13 e C++ Builder
  • Codice sorgente completo
  • 1 anno di aggiornamenti

Nessun componente aggiuntivo da aggiungere o rimuovere al pagamento, sgcREST gira sulla libreria Indy standard inclusa in RAD Studio.

Il pagamento elenca due voci: il diritto d'uso del runtime sgcWebSockets Core, addebitato a zero, e il pacchetto sgcREST stesso. Tutti i dettagli sui prezzi.

3,000+Developers
20+Years
761+Components
30+API Integrations
5Platforms
Garanzia soddisfatti o rimborsati di 30 giorniNon sei soddisfatto? Richiedi un rimborso completo entro 30 giorni dall'acquisto. Vedi la politica di rimborso

API REST e OpenAPI, integrate direttamente nel codice nativo

Un server REST con statistiche, multi-tenancy e utenti, un server OpenAPI che funziona spec-first o code-first, e un client OpenAPI per qualsiasi API descritta con OpenAPI, con il runtime incluso e il codice sorgente completo nella confezione. Scarica l'installer di prova All-Access e prova tutte e sette le classi oggi stesso.

Altri prodotti di eSeGeCe

Abbina sgcREST alle nostre altre librerie di componenti per Delphi, C++ Builder e .NET.

sgcWebSockets

La libreria completa: client e server WebSocket, componenti HTTP/2, gRPC, IoT, P2P e IA. La sua edizione Enterprise include anche il server OpenAPI.

Scopri di più →

sgcHTTP

Componenti client HTTP/2, gRPC e Google Cloud Pub/Sub, Calendar e Firebase Cloud Messaging, con il runtime Core incluso.

Scopri di più →

sgcAuth

Componenti client OAuth2 e JWT più l'accesso con passkey WebAuthn, un abbinamento naturale con l'archivio utenti di un'API REST.

Scopri di più →

sgcAI

Componenti IA, LLM e MCP. Un unico componente di chat raggiunge OpenAI, Anthropic, Gemini, DeepSeek, Ollama, Grok e Mistral.

Scopri di più →

sgcMQ

Componenti client nativi MQTT 3.1.1/5.0, AMQP 0.9.1, AMQP 1.0, Apache Kafka e STOMP, con il runtime Core incluso.

Scopri di più →

sgcOpenAPI

Un prodotto a parte incluso: un parser OpenAPI 3.x, un generatore nativo di SDK Pascal e oltre 1.195 SDK cloud precompilati, per la generazione di codice offline invece di un client runtime.

Scopri di più →