sgcREST API REST, native in Delphi. OpenAPI integrato.

Due compiti, sette classi. TsgcHTTPRESTServer pubblica un'API REST con CORS, /metrics e /health, multi-tenancy e un archivio utenti. Un motore OpenAPI serve un'API direttamente da un contratto OpenAPI 3.x, oppure genera il contratto dalla tua classe Delphi, e TsgcOpenAPI_Client consuma qualsiasi API descritta con OpenAPI. Il runtime sgcWebSockets Core è incluso.

Pubblica il tuo primo endpoint in poche righe →
  • Delphi da 7 a 13
  • C++ Builder
  • OpenAPI 3.x
  • CORS
  • /metrics e /health
  • Multi-tenancy
  • Codice sorgente completo
  • 4Componenti in palette: server REST, statistiche, tenancy e utenti
  • 7Classi in tutto: famiglia del server REST, motore OpenAPI e client
  • 4Schemi di autenticazione del client: Basic, bearer token, OAuth2 e JWT
  • 2Endpoint integrati, /metrics e /health, entrambi opzionali
  • 100%Codice sorgente incluso in ogni licenza
Guardalo in azione

Scopri sgcREST in due minuti.

Una dimostrazione con voce narrante e sottotitoli del server REST: il server HTTP che già conosci, più le quattro cose di cui un'API REST finisce sempre per avere bisogno. Non si scarica nulla finché non premi play.

Avvio rapido di sgcREST

Costruisci un server API REST in Delphi con CORS, statistiche live, tenancy e utenti.

  1. Tutto ereditatoTsgcHTTPRESTServer discende da TsgcHTTPServer: Port, TLS, Authentication, sessioni, compressione, il thread pool, il firewall e il rate limiter.
  2. Tutto opzionaleCORS è disattivato per impostazione predefinita, ServerStats e Tenancy non sono assegnati. Nulla si attiva da solo dopo un aggiornamento.
  3. CORSElenca le origini, i metodi e gli header che consenti, e il server risponde al preflight OPTIONS per te.
  4. Metriche e statoAssegna TsgcHTTPServerStats e ottieni /metrics e /health, entrambi dietro il controllo di autenticazione del server.
  5. Multi-tenancyOgni richiesta viene associata a un tenant a partire dall'host, dal percorso, da un header o da un claim JWT. Gli handler leggono semplicemente Tenant.
  6. Un archivio utenti già prontoAccount, hash delle password con salt e ruoli. Il controllo Basic integrato risolve ogni credenziale rispetto ad esso.
Cosa contiene il pacchetto

Quattro componenti in palette, tre classi solo da codice.

Il server REST e i suoi tre compagni sono componenti non visuali nella pagina SGC REST della palette. Il motore del server OpenAPI e il client OpenAPI risiedono nelle unità sgcHTTP_OpenAPI_*: creane uno, configuralo e chiama direttamente i suoi metodi.

Server REST · un server, tre compagni

Vedi →
  • TsgcHTTPRESTServer
  • TsgcHTTPServerStats
  • TsgcHTTPServer_Tenancy
  • TsgcHTTPServer_Users
  • CORSOptions
  • ServerStats
  • Tenancy
  • Tenant

TsgcHTTPRESTServer estende il TsgcHTTPServer standard con la gestione di CORS tramite CORSOptions, e due proprietà per i compagni opzionali. TsgcHTTPServerStats conta ogni richiesta per classe di stato, tiene traccia della latenza minima, media e massima, ed espone un endpoint /metrics in formato Prometheus più un endpoint JSON /health, con GetEndpointStats per il dettaglio per singola route. TsgcHTTPServer_Tenancy risolve il tenant del chiamante dal nome host, da un segmento del percorso, da un header della richiesta o da un claim JWT, e Tenant legge il risultato per la richiesta in corso. TsgcHTTPServer_Users è un archivio autonomo di account, hash delle password con salt e ruoli.

Server OpenAPI · spec-first o code-first

Vedi →
  • TsgcOpenAPIRouteTable
  • TsgcOpenAPIServerContext
  • TsgcOpenAPIServerHandler
  • TsgcOpenAPIJSONValidator
  • TsgcOpenAPICodeFirstScanner
  • RespondJSON

Carica un documento OpenAPI 3.0 o 3.1 e la route table viene costruita dalla sua sezione paths. Una richiesta corrispondente arriva come TsgcOpenAPIServerContext, con parametri di percorso e di query tipizzati, helper per il body e RespondJSON/RespondError, e il validatore controlla body, parametri di query e di percorso rispetto agli JSON Schema dichiarati dalla specifica. Il code-first inverte la fonte di verità: annota una semplice classe Delphi e lo scanner genera la specifica.

Client OpenAPI · qualsiasi API descritta

Vedi →
  • TsgcOpenAPI_Client
  • SetBaseURL
  • HTTP_REQUEST
  • HTTP_REQUEST_Async
  • Authentication
  • OnBeforeRequest
  • OnUpload
  • OnDownload

Un client generico a runtime per qualsiasi endpoint descritto da un documento OpenAPI, e la classe base degli SDK generati. Authentication copre l'autenticazione Basic e i bearer token più OAuth2 e JWT generici, HTTP_REQUEST esegue la chiamata, e OnBeforeRequest, OnUpload e OnDownload la seguono.

Vedi ogni componente e proprietà

Come funziona

Un server, compagni componibili.

Le sette classi si dividono nettamente per ruolo. Il server REST gestisce il traffico HTTP, tre compagni aggiungono ciò che serve a un'API in produzione, e il motore OpenAPI trasforma una specifica, scritta o generata, in una route table funzionante.

Un TsgcHTTPServer con qualcosa in più

TsgcHTTPRESTServer eredita i binding, il TLS e la gestione HTTP/2 del semplice server HTTP incluso in ogni edizione di sgcWebSockets, e aggiunge CORS più le proprietà dei compagni, così un'API REST ottiene metriche, health check e multi-tenancy senza un framework separato.

Compagni, non incorporati

Statistiche, tenancy e utenti sono componenti separati. Collega quelli che servono a una data API e lascia fuori gli altri. Un compagno collegato ma non configurato non costa nulla al server da controllare.

Spec-first e code-first, una sola route table

Che il documento OpenAPI provenga da un file caricato o da TsgcOpenAPICodeFirstScanner.GenerateSpec che analizza una classe con attributi, la stessa route table e lo stesso contesto di richiesta servono entrambi i casi.

Ogni callback che la specifica richiede

Gli eventi di validazione e autenticazione ricevono il TsgcOpenAPIServerContext già analizzato, con PathParams, QueryParams e RespondJSON, e OnException intercetta gli errori degli handler prima che raggiungano la rete, così nulla del motivo per cui una chiamata è stata accettata o rifiutata ti viene nascosto.

Sei piattaforme, nessun componente aggiuntivo

Tutte e sette le classi girano sulla libreria Indy standard fornita con RAD Studio: Windows Win32 e Win64, Linux64, macOS, iOS e Android. Da Delphi 7 a RAD Studio 13 e su C++ Builder.

Il runtime Core è incluso

Il runtime sgcWebSockets Core fornisce lo stack HTTP/TLS su cui girano il server REST e ogni classe OpenAPI, e il livello JSON che serializza ogni richiesta e risposta. Il suo sorgente completo fa parte del pacchetto come tutto il resto.

Avvio rapido

Pubblica un endpoint, pubblica un contratto, o chiamane uno.

Il server REST ti consegna direttamente la richiesta. Il server OpenAPI ti consegna un'operazione già validata e già associata. Il client OpenAPI chiama gli endpoint di qualcun altro. Tutti e tre si compilano allo stesso modo in Delphi da 7 a 13 e in 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.json');
  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;
uses
  sgcHTTP_OpenAPI_Client;
var
  APIClient: TsgcOpenAPI_Client;
  Request: TsgcOpenAPIRequest;
  Response: TsgcOpenAPIResponse;
begin
  // 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;
  1. CORS, gestito per teAbilita CORSOptions, elenca le origini, i metodi e gli header che consenti, e il server risponde al preflight OPTIONS. Si applica ai tuoi handler e ai file serviti da DocumentRoot.
  2. Statistiche con una sola assegnazioneAssegna TsgcHTTPServerStats a ServerStats per ottenere /metrics e /health. Lascialo non assegnato e non viene tenuto alcun contatore.
  3. Tenancy prima che giri il tuo codiceAssegna TsgcHTTPServer_Tenancy e ogni richiesta viene prima associata a un tenant. I tuoi handler leggono semplicemente Tenant.
  4. Utenti senza un handlerAssegna TsgcHTTPServer_Users a Authentication.Users e il controllo Basic integrato risolve da solo ogni credenziale.
Avvio rapido di sgcREST: TsgcHTTPServerStats abilita gli endpoint Metrics e Health, GET /metrics restituisce i contatori delle richieste e GET /health restituisce uno stato JSON.
Tre righe di configurazione, poi GET /metrics e GET /health rispondono da soli.

La matrice completa delle funzionalità

Prima di acquistare

Due cose da sapere prima.

Cosa richiede sgcREST da te, e cosa no. Entrambe le risposte sono brevi, ed entrambe sono su questa pagina invece che nelle note in piccolo.

pubblica un'API REST
TsgcHTTPRESTServer        CORS, ServerStats, Tenancy
TsgcHTTPServerStats       /metrics e /health
TsgcHTTPServer_Tenancy    host, percorso, header, claim JWT
TsgcHTTPServer_Users      account, hash, ruoli

pubblica da un contratto OpenAPI 3.x
route table + context     spec-first, Delphi da 7 a 13
code-first scanner        classe con attributi, da XE7 in su

consuma un'API
TsgcOpenAPI_Client        qualsiasi API descritta con OpenAPI

TsgcHTTPRESTServer è un discendente di
  TsgcHTTPServer, quindi pubblica dalle
  Port, TLS e Authentication che già usi.

sgcREST è autosufficiente

Autonomo, con il runtime sgcWebSockets Core incluso: lo stack server e client HTTP/TLS su cui girano il server REST e ogni classe OpenAPI, e il livello JSON che serializza ogni richiesta e risposta. Un solo installer, e sgcREST gira sulla libreria Indy standard fornita con RAD Studio.

L'OpenAPI code-first richiede Delphi XE7+

Generare una specifica da una classe Delphi con attributi si basa sulla RTTI arrivata con Delphi XE7, quindi TsgcOpenAPICodeFirstScanner e TsgcOpenAPICodeFirstDispatcher si compilano da XE7 in su. Il server REST, i suoi compagni e il motore spec-first girano su ogni compilatore supportato, da Delphi 7 a 13.

Nulla nel mezzo è una scatola nera

sgcREST implementa le superfici REST e OpenAPI descritte dal tuo contratto invece di incapsulare un generatore di codice che non controlli. Richieste, validazione e dispatch sono metodi ed eventi di prima classe, e il codice sorgente completo è incluso in ogni licenza, così tutto si segue passo passo nel tuo debugger.

Parte di sgcWebSockets

Un pacchetto di sgcWebSockets, con licenza propria.

sgcREST racchiude in un unico pacchetto le classi REST e OpenAPI di sgcWebSockets. Ogni licenza include tutte e sette le classi, il runtime sgcWebSockets Core, il codice sorgente completo, la ridistribuzione senza royalty e 1 anno di aggiornamenti.

Single

1 licenza sviluppatore. Uso su una macchina alla volta.

€249

Team

2 licenze sviluppatore. Uso su due macchine alla volta.

€399

Site

Sviluppatori illimitati. Tutte le macchine aziendali.

€649

Il rinnovo è offerto con uno sconto dal 50% al 70%. Usi già sgcWebSockets? Il server REST è incluso in Professional e superiori e l'edizione Enterprise comprende anche il server OpenAPI, quindi la tua edizione potrebbe già coprirti, e il bundle All-Access include tutto. L'installer di prova è il trial di sgcWebSockets All-Access, così tutte e sette le classi si possono valutare subito.

Vedi prezzi e ordina
Testimonianze

Cosa dicono gli sviluppatori

Scelta da sviluppatori Delphi, C++ Builder, Lazarus e .NET in tutto il mondo.

La vostra libreria sgcWebSockets è molto utile e semplice da configurare. Continuate così!
Simone Moretti Sviluppatore Delphi
sgcWebSockets è straordinario e il vostro supporto è il migliore!
Christian Meyer Fondatore e CTO
Grazie mille per il vostro aiuto e supporto, adoro i vostri componenti.
Mark Steinfeld CTO

API REST, contratti OpenAPI, codice nativo.

Un server REST con CORS, statistiche, tenancy e utenti, un server OpenAPI che funziona spec-first o code-first, e un client OpenAPI per qualsiasi API descritta, con il runtime sgcWebSockets Core incluso e il codice sorgente completo nella confezione.

L'ecosistema

Altri prodotti di eSeGeCe

sgcREST è 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.

sgcWebSockets

WebSocket, HTTP/2, MQTT, AMQP, WebRTC, IA e oltre 30 integrazioni API per Delphi, C++ Builder, Lazarus e .NET. Qui vive il runtime Core, e la sua edizione Enterprise include anche il server OpenAPI.

sgcHTTP

Server HTTP, client HTTP/2, client gRPC e client Google Cloud Pub/Sub, Calendar e FCM per Delphi e C++ Builder. Autonomo, con il runtime sgcWebSockets Core incluso.

sgcAuth

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

sgcAI

Componenti AI, LLM e MCP per Delphi e C++ Builder. Sette provider LLM dietro un solo componente, più MCP, embeddings e voce.

sgcMQ

Componenti client MQTT, AMQP 0.9.1 e 1.0, Apache Kafka e STOMP per Delphi e C++ Builder. Autonomo, con il runtime sgcWebSockets Core incluso.

sgcSocial

Componenti client Telegram e WhatsApp Business per Delphi e C++ Builder. Autonomo, con il runtime sgcWebSockets Core incluso.

sgcOpenAPI

Parser OpenAPI 3.x, generatore di SDK Pascal nativi e oltre 1.195 SDK cloud già pronti, per la generazione di codice offline anziché per un client a runtime.

sgcHTML

Componenti HTML e UI lato server su Bootstrap 5 e htmx per Delphi, C++ Builder e .NET.

sgcQUIC

Trasporto QUIC puro e un client e server HTTP/3, con WebTransport. Un componente aggiuntivo per sgcWebSockets Enterprise.

sgcSign

XAdES, PAdES, CAdES e ASiC per i documenti, Authenticode, ClickOnce, NuGet e VSIX per il codice.

sgcPDF

Crea, modifica, visualizza, firma, oscura e convalida file PDF in puro Object Pascal, senza alcuna DLL da distribuire. Con licenza a parte.

sgcBiometrics

Windows Hello, sensori di impronte digitali e il Windows Biometric Framework per Delphi e C++ Builder.

sgcIndy

Componenti TCP/IP Indy aggiornati con TLS moderno, IPv6 e HTTP/2 per Delphi da 7 a 13.

Le ultime dal blog

Vedi tutti gli articoli →

Stai vedendo eSeGeCe dal punto di vista di REST e OpenAPI.

Mostrami un altro punto di vista →
Garanzia soddisfatti o rimborsati di 30 giorniNon sei soddisfatto? Richiedi un rimborso completo entro 30 giorni dall'acquisto. Vedi la politica di rimborso