eSeGeCe — Composants de communication d’entreprise pour Delphi & .NET
EN VEDETTE · sgcREST

Des API REST depuis un contrat OpenAPI, natif dans Delphi

Trois composants couvrent deux métiers. TsgcHTTPRESTServer est un serveur REST avec CORS, des points de terminaison /metrics et /health optionnels et une résolution multi-tenant des requêtes intégrée. TsgcWSAPIServer_OpenAPI charge un contrat OpenAPI 3.x avec LoadFromFile et distribue, valide et authentifie chaque requête par rapport à celui-ci. TsgcOpenAPI_Client est la classe de base derrière les clients typés pour n'importe quelle API décrite en OpenAPI. Autonome, le runtime sgcWebSockets Core est inclus.

  • 3 classes de composants
  • Serveur REST · Serveur OpenAPI · Client OpenAPI
  • CORS, /metrics, /health, multi-tenant
  • Delphi 7 à 13 · C++ Builder

Deux composants de palette, une classe de base cliente

sgcREST est un package autonome. Il embarque le runtime sgcWebSockets Core sur lequel il repose, et chaque licence est livrée avec le code source complet, si bien que le dispatch REST et la validation OpenAPI se tracent dans ton propre débogueur.

2 Composants de palette TsgcHTTPRESTServer sur la page SGC REST, TsgcWSAPIServer_OpenAPI sur la page SGC OpenAPI.
3 Classes de composants au total Serveur REST, serveur OpenAPI et la classe de base du client OpenAPI.
2 Points de terminaison intégrés /metrics et /health, optionnels et servis derrière l'Authentication que le serveur applique déjà.
1 Installateur autonome Le runtime sgcWebSockets Core et la couche HTTP/TLS sont tous deux inclus dans le package.
100% Code source inclus Chaque licence porte le code source complet des trois composants et du runtime inclus.
sgcREST

Composants serveur REST et serveur/client OpenAPI pour Delphi et C++ Builder. Un package autonome avec le runtime sgcWebSockets Core inclus, le code source complet, et un déploiement sans royalties.

Publie une API, ou consomme-en une

Les trois classes se répartissent nettement par direction. Le serveur REST et le serveur OpenAPI publient des points de terminaison que tes appelants atteignent. La classe de base du client OpenAPI est celle que les SDK générés utilisent pour appeler les points de terminaison de quelqu'un d'autre.

Serveur REST

CORS, métriques, santé et tenancy, intégrés

TsgcHTTPRESTServer étend le serveur HTTP sgcWebSockets avec la plomberie quotidienne dont une API REST a besoin : CORSOptions pour les requêtes cross-origin, des points de terminaison /metrics et /health optionnels via ServerStats, et une résolution multi-tenant des requêtes via Tenancy, par hôte, chemin, en-tête ou revendication JWT. Tenant expose la valeur résolue à tes propres gestionnaires de requête.

Voir le serveur REST →
Serveur OpenAPI

Charge un contrat, distribue et valide chaque requête

TsgcWSAPIServer_OpenAPI lit un document OpenAPI 3.x avec LoadFromFile ou LoadFromString et le transforme en un dispatcher vivant : chaque requête entrante est comparée au contrat et routée vers ton gestionnaire OnRequest par id d'opération. OnValidationError, OnAuthenticate, OnValidateAPIKey, OnValidateBasic et OnValidateBearer couvrent les schémas de sécurité que déclare la spécification, et OnBeforeRequest/OnAfterRequest encadrent l'appel.

Voir le serveur OpenAPI →
Client OpenAPI

Une seule classe de base derrière chaque SDK généré

TsgcOpenAPI_Client est le client runtime générique pour n'importe quelle API décrite en OpenAPI : Authentication couvre l'authentification Basic, le jeton Bearer, OAuth2 générique et JWT, et HTTP_REQUEST et HTTP_REQUEST_Async exécutent l'appel. Pointe SetBaseURL vers un contrat que tu as chargé ou généré toi-même et il est prêt à appeler.

Voir ce qu'il peut faire →
Échappatoire

Chaque callback dont la spécification a besoin

OnException intercepte les erreurs de gestionnaire avant qu'elles n'atteignent le fil, et tous les événements de validation et d'authentification reçoivent le TsgcOpenAPIServerContext analysé, avec PathParams, QueryParams et RespondJSON, rien de la raison pour laquelle un appel a été accepté ou rejeté ne t'est donc caché.

La surface de validation →
Multiplateforme

Cinq plateformes, un seul runtime

Le serveur REST et le serveur OpenAPI sont des descendants de TsgcHTTPServer, et le client OpenAPI tourne sur la même pile HTTPS que le reste du runtime Core. De Delphi 7 à RAD Studio 13 et sur C++ Builder.

La matrice des fonctionnalités →

Les pages de référence de chaque composant :

Publie un point de terminaison, ou publie un contrat

Le serveur REST te donne la requête directement. Le serveur OpenAPI te donne une opération déjà appariée et validée. Les deux compilent de la même façon de Delphi 7 à 13 et sur C++ Builder.

uses
  sgcHTTP_REST_Server, sgcHTTP_REST_Server_Stats;
var
  RESTServer: TsgcHTTPRESTServer;
  Stats: TsgcHTTPServerStats;
begin
  // Serveur REST : CORS, health/metrics et tenancy dans un seul composant
  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
  // Serveur OpenAPI : charge le contrat, distribue par id d'opération
  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 même forme en Object Pascal et en C++ Builder. La matrice complète des fonctionnalités →

Deux choses à savoir d'abord

Ce que sgcREST attend de toi, et ce qu'il n'attend pas. Les deux réponses sont courtes, et toutes les deux sont sur cette page plutôt qu'en petits caractères.

Trois composants, deux métiers
composant                            rôle
TsgcHTTPRESTServer                  publie une API REST : CORS,
                                       /metrics, /health, tenancy
TsgcWSAPIServer_OpenAPI             publie une API REST depuis
                                       un contrat OpenAPI 3.x
TsgcOpenAPI_Client                  consomme n'importe quelle API OpenAPI

Les deux composants serveur sont des descendants
  TsgcHTTPServer, ils se rattachent donc au même Port,
  TLSOptions et Authentication que tes autres serveurs
  sgcWebSockets utilisent déjà.

sgcREST est autonome

Autonome, le runtime sgcWebSockets Core est inclus : la pile serveur HTTP/TLS sur laquelle tournent le serveur REST et le serveur OpenAPI, et la couche JSON avec laquelle le client OpenAPI décode les réponses. Un seul installateur, code source complet dans la boîte.

Serveur REST et serveur OpenAPI partagent une base

TsgcHTTPRESTServer et le serveur HTTP auquel s'attache un serveur OpenAPI sont tous deux des descendants de TsgcHTTPServer, si bien que CORS, TLS, Authentication et le pipeline de requêtes se comportent de la même façon, quel que soit celui qui publie ton API.

Le client OpenAPI n'a besoin que du contrat

TsgcOpenAPI_Client résout les chemins, les en-têtes et l'authentification directement à partir du document OpenAPI, sur la pile HTTPS pure du runtime Core.

Delphi et C++ Builder

sgcREST cible Delphi 7 à RAD Studio 13 et C++ Builder. Le serveur REST est aussi livré dans sgcWebSockets Professional et supérieur, et le serveur et le client OpenAPI sont aussi livrés avec le pack sgcOpenAPI existant, une licence existante peut donc déjà te couvrir. L'installateur d'essai gratuit est l'essai sgcWebSockets All-Access, les trois classes peuvent donc être évaluées dès aujourd'hui.

OpenAPI 3.x CORS Multi-tenant /metrics et /health Code source complet

Chaque composant et propriété →

sgcREST implémente les surfaces REST et OpenAPI que décrit ton contrat plutôt que d'envelopper un générateur de code que tu ne contrôles pas, si bien que les requêtes, la validation et le dispatch sont tous des méthodes et événements de premier ordre, et le code source complet garantit que rien entre les deux n'est une boîte noire.

Treize bibliothèques, une seule boîte à outils

sgcREST est l'une des treize bibliothèques de composants eSeGeCe pour Delphi, C++ Builder et .NET. Elles partagent les mêmes conventions, elles sont livrées avec le code source complet et se déploient sans royalties.

sgcREST

Composants serveur REST, serveur OpenAPI et client OpenAPI pour Delphi et C++ Builder. Autonome, avec le runtime sgcWebSockets Core inclus.

En savoir plus →

sgcHTTP

Client HTTP/2, client gRPC et clients Google Cloud Pub/Sub, Calendar et FCM pour Delphi et C++ Builder. Autonome, avec le runtime sgcWebSockets Core inclus.

En savoir plus →

sgcAuth

Client OAuth2, client JWT et prise en charge de WebAuthn pour Delphi et C++ Builder. Autonome, avec le runtime sgcWebSockets Core inclus.

En savoir plus →

sgcWebSockets

WebSocket, HTTP/2, MQTT, AMQP, WebRTC, IA et plus de 30 intégrations d'APIs pour Delphi, C++ Builder, Lazarus et .NET. Son édition Enterprise inclut aussi gRPC.

En savoir plus →

sgcMQ

Composants clients MQTT, AMQP 0.9.1 et 1.0, Apache Kafka et STOMP pour Delphi et C++ Builder. Autonome, avec le runtime sgcWebSockets Core inclus.

En savoir plus →

sgcSocial

Composants clients Telegram et WhatsApp Business pour Delphi et C++ Builder. Autonome, avec le runtime sgcWebSockets Core inclus.

En savoir plus →

sgcHTML

Composants HTML et d'interface côté serveur sur Bootstrap 5 et htmx pour Delphi, C++ Builder et .NET.

En savoir plus →

sgcQUIC

Transport QUIC pur et un client/serveur HTTP/3, avec WebTransport. Un complément à sgcWebSockets Enterprise.

En savoir plus →

sgcAI

Composants IA, LLM et MCP pour Delphi et C++ Builder. Sept fournisseurs de LLM derrière un seul composant, plus MCP, embeddings et voix. Autonome, avec le runtime sgcWebSockets Core inclus.

En savoir plus →

sgcOpenAPI

Parser OpenAPI 3.x, générateur natif de SDK Pascal, composant serveur OpenAPI, et plus de 1 195 SDK cloud préconçus.

En savoir plus →

sgcSign

XAdES, PAdES, CAdES et ASiC pour les documents, Authenticode, ClickOnce, NuGet et VSIX pour le code.

En savoir plus →

sgcBiometrics

Windows Hello, capteurs d'empreintes digitales et Windows Biometric Framework pour Delphi et C++ Builder.

En savoir plus →

sgcIndy

Composants Indy TCP/IP mis à jour avec TLS moderne, IPv6 et HTTP/2, de Delphi 7 à 13.

En savoir plus →

Voir les tarifs et les licences Télécharger l'essai gratuit

Ce que disent les développeurs

Plébiscité par des développeurs Delphi, C++ Builder, Lazarus et .NET dans le monde entier.

Votre bibliothèque sgcWebSockets est très utile et facile à configurer. Continuez votre excellent travail !

Simone Moretti Développeur Delphi

sgcWebSockets est incroyable et votre support est le meilleur !

Christian Meyer Fondateur & CTO

Merci beaucoup pour votre aide et votre support, j'adore vos composants.

Mark Steinfeld CTO

Tu vois la vue REST & OpenAPI d'eSeGeCe.

Montre-moi un autre angle →

API REST, contrats OpenAPI, code natif

Un serveur REST, un serveur OpenAPI et un client OpenAPI, avec le runtime sgcWebSockets Core inclus et le code source complet dans la boîte.