eSeGeCe — Componenti di comunicazione enterprise per Delphi e .NET
IN EVIDENZA · sgcREST

API REST da un contratto OpenAPI, native in Delphi

Tre componenti coprono due compiti. TsgcHTTPRESTServer è un server REST con CORS, endpoint opzionali /metrics e /health e risoluzione multi-tenant delle richieste integrati. TsgcWSAPIServer_OpenAPI carica un contratto OpenAPI 3.x con LoadFromFile e instrada, valida e autentica ogni richiesta rispetto ad esso. TsgcOpenAPI_Client è la classe base dietro i client tipizzati per qualsiasi API descritta con OpenAPI. Autonomo, il runtime sgcWebSockets Core è incluso.

  • 3 classi di componenti
  • Server REST · Server OpenAPI · Client OpenAPI
  • CORS, /metrics, /health, multi-tenancy
  • Delphi da 7 a 13 · C++ Builder

Due componenti nella palette, una classe base per il client

sgcREST è un package autonomo. Include il runtime sgcWebSockets Core su cui è costruito, e ogni licenza viene fornita con il codice sorgente completo, così il dispatch REST e la validazione OpenAPI si possono seguire passo passo nel tuo debugger.

2 Componenti nella palette TsgcHTTPRESTServer sulla pagina SGC REST, TsgcWSAPIServer_OpenAPI sulla pagina SGC OpenAPI.
3 Classi di componenti totali Server REST, server OpenAPI e la classe base del client OpenAPI.
2 Endpoint integrati /metrics e /health, opzionali e serviti dietro qualsiasi Authentication già applicata dal server.
1 Installer autonomo Il runtime sgcWebSockets Core e il livello HTTP/TLS sono entrambi inclusi nel package.
100% Codice sorgente incluso Ogni licenza include il sorgente completo di tutti e tre i componenti e del runtime incluso.
sgcREST

Componenti server REST e server/client OpenAPI per Delphi e C++ Builder. Un package autonomo con il runtime sgcWebSockets Core incluso, codice sorgente completo e distribuzione senza royalty.

Pubblica un'API, oppure consumane una

Le tre classi si dividono nettamente per direzione. Il server REST e il server OpenAPI pubblicano gli endpoint che i tuoi chiamanti raggiungono. La classe base del client OpenAPI è ciò che gli SDK generati usano per chiamare gli endpoint di qualcun altro.

Server REST

CORS, metriche, salute e tenancy, integrati

TsgcHTTPRESTServer estende il server HTTP di sgcWebSockets con gli strumenti quotidiani di cui un'API REST ha bisogno: CORSOptions per le richieste cross-origin, endpoint opzionali /metrics e /health tramite ServerStats, e risoluzione multi-tenant delle richieste tramite Tenancy, per host, path, header o claim JWT. Tenant espone il valore risolto ai tuoi stessi request handler.

Vedi il server REST →
Server OpenAPI

Carica un contratto, instrada e valida ogni richiesta

TsgcWSAPIServer_OpenAPI legge un documento OpenAPI 3.x con LoadFromFile o LoadFromString e lo trasforma in un dispatcher live: ogni richiesta in arrivo viene abbinata al contratto e instradata al tuo handler OnRequest in base all'operation id. OnValidationError, OnAuthenticate, OnValidateAPIKey, OnValidateBasic e OnValidateBearer coprono gli schemi di sicurezza dichiarati dallo spec, e OnBeforeRequest/OnAfterRequest racchiudono la chiamata.

Vedi il server OpenAPI →
Client OpenAPI

Una classe base dietro ogni SDK generato

TsgcOpenAPI_Client è il client runtime generico per qualsiasi API descritta con OpenAPI: Authentication copre Basic auth, bearer token, OAuth2 e JWT generici, e HTTP_REQUEST e HTTP_REQUEST_Async eseguono la chiamata. Punta SetBaseURL su un contratto che hai caricato o generato tu stesso ed è pronto per essere chiamato.

Scopri cosa può fare →
Via di fuga

Ogni callback di cui lo spec ha bisogno

OnException intercetta gli errori dell'handler prima che arrivino sul filo, e tutti gli eventi di validazione e autenticazione ricevono il TsgcOpenAPIServerContext analizzato, con PathParams, QueryParams e RespondJSON, così nulla del perché una chiamata è stata accettata o rifiutata ti viene nascosto.

La superficie di validazione →
Multipiattaforma

Cinque piattaforme, un solo runtime

Il server REST e il server OpenAPI sono discendenti di TsgcHTTPServer, e il client OpenAPI gira sullo stesso stack HTTPS del resto del runtime Core. Da Delphi 7 a RAD Studio 13 e su C++ Builder.

La matrice delle funzionalità →

Pagine di riferimento per ogni componente:

Pubblica un endpoint, oppure pubblica un contratto

Il server REST ti passa la richiesta direttamente. Il server OpenAPI ti passa un'operazione già validata e già abbinata. Entrambi compilano allo stesso modo in Delphi 7-13 e 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.yaml');
  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;

La stessa forma in Object Pascal e in C++ Builder. La matrice completa delle funzionalità →

Due cose che vale la pena sapere subito

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.

Tre componenti, due compiti
componente                          ruolo
TsgcHTTPRESTServer                  pubblica un'API REST: CORS,
                                       /metrics, /health, tenancy
TsgcWSAPIServer_OpenAPI             pubblica un'API REST da un
                                       contratto OpenAPI 3.x
TsgcOpenAPI_Client                  consuma qualsiasi API OpenAPI

Entrambi i componenti server sono discendenti
  di TsgcHTTPServer, quindi si agganciano alla
  stessa Port, TLSOptions e Authentication che
  i tuoi altri server sgcWebSockets già usano.

sgcREST è autonomo

Autonomo, include il runtime sgcWebSockets Core: lo stack server HTTP/TLS su cui girano sia il server REST sia il server OpenAPI, e lo strato JSON con cui il client OpenAPI decodifica le risposte. Un solo installer, codice sorgente completo nella confezione.

Server REST e server OpenAPI condividono una base

TsgcHTTPRESTServer e il server HTTP a cui si aggancia un server OpenAPI sono entrambi discendenti di TsgcHTTPServer, quindi CORS, TLS, Authentication e la pipeline delle richieste si comportano allo stesso modo qualunque dei due stia pubblicando la tua API.

Il client OpenAPI richiede solo il contratto

TsgcOpenAPI_Client risolve path, header e autenticazione direttamente dal documento OpenAPI, sullo stack HTTPS puro del runtime Core.

Delphi e C++ Builder

sgcREST supporta da Delphi 7 a RAD Studio 13 e C++ Builder. Il server REST vive anche dentro sgcWebSockets Professional e superiori, e il server e il client OpenAPI vengono forniti anche con il pack sgcOpenAPI esistente, quindi una licenza già in tuo possesso potrebbe già coprirti. L'installer della versione di prova gratuita è la prova All-Access di sgcWebSockets, quindi tutte e tre le classi possono essere valutate fin da subito.

OpenAPI 3.x CORS Multi-tenancy /metrics e /health Sorgente completo

Ogni componente e proprietà →

sgcREST implementa le superfici REST e OpenAPI descritte dal tuo contratto invece di avvolgere un generatore di codice che non controlli, quindi richieste, validazione e dispatch sono tutti metodi ed eventi di prima classe, e il codice sorgente completo significa che nulla nel mezzo è una scatola nera.

Tredici librerie, una sola cassetta degli attrezzi

sgcREST è una delle tredici librerie di componenti eSeGeCe per Delphi, C++ Builder e .NET. Condividono le convenzioni, vengono fornite con il sorgente completo e si distribuiscono senza royalty.

sgcREST

Componenti server REST, server OpenAPI e client OpenAPI per Delphi e C++ Builder. Autonomo, con il runtime sgcWebSockets Core incluso.

Scopri di più →

sgcHTTP

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.

Scopri di più →

sgcAuth

Client OAuth2, client JWT e supporto WebAuthn per Delphi e C++ Builder. Autonomo, con il runtime sgcWebSockets Core incluso.

Scopri di più →

sgcWebSockets

WebSocket, HTTP/2, MQTT, AMQP, WebRTC, IA e oltre 30 integrazioni API per Delphi, C++ Builder, Lazarus e .NET. La sua edizione Enterprise include anche gRPC.

Scopri di più →

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.

Scopri di più →

sgcSocial

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

Scopri di più →

sgcHTML

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

Scopri di più →

sgcQUIC

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

Scopri di più →

sgcAI

Componenti AI, LLM e MCP per Delphi e C++ Builder. Sette provider LLM dietro un unico componente, più MCP, embeddings e voce. Autonomo, con il runtime sgcWebSockets Core incluso.

Scopri di più →

sgcOpenAPI

Parser OpenAPI 3.x, generatore di SDK Pascal nativi, componente server OpenAPI e oltre 1.195 SDK cloud già pronti.

Scopri di più →

sgcSign

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

Scopri di più →

sgcBiometrics

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

Scopri di più →

sgcIndy

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

Scopri di più →

Vedi prezzi e licenze Scarica la versione di prova

Cosa dicono gli sviluppatori

La scelta di 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 Delphi Developer

sgcWebSockets è straordinario e il vostro supporto è il migliore!

Christian Meyer Founder & CTO

Grazie mille per il vostro aiuto e supporto, adoro i vostri componenti.

Mark Steinfeld CTO

Questa è la vista REST e OpenAPI di eSeGeCe.

Mostrami un altro punto di vista →

API REST, contratti OpenAPI, codice nativo

Un server REST, un server OpenAPI e un client OpenAPI, con il runtime sgcWebSockets Core incluso e il codice sorgente completo nella confezione.