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

Le ultime dal blog

Vedi tutti gli articoli →

Questa è la vista REST e OpenAPI di eSeGeCe.

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

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.