sgcREST : serveur REST API et composants OpenAPI pour Delphi et C++ Builder
Produit autonome Serveur REST & OpenAPI

sgcREST : serveur REST API et composants OpenAPI pour Delphi et C++ Builder

Deux métiers, sept classes. TsgcHTTPRESTServer est un serveur d'API REST avec gestion CORS et trois compléments attachables : statistiques de requêtes, multi-tenant et un magasin d'utilisateurs local. À côté, un moteur OpenAPI publie une API directement depuis une spécification, ou génère cette spécification à partir d'une classe Delphi annotée, et TsgcOpenAPI_Client consomme n'importe quelle API décrite en OpenAPI. sgcREST est autonome, il embarque le runtime sgcWebSockets Core sur lequel reposent toutes ses classes.

Code source complet
Delphi 7 à 13 et C++ Builder
Runtime inclus sgcWebSockets Core Le runtime HTTP, TLS et JSON sous chaque classe
Serveur REST TsgcHTTPRESTServer
OpenAPI TsgcOpenAPI_Client
4 Composants de palette Serveur REST, statistiques, tenancy et utilisateurs, une seule page de palette
7 Classes au total Famille du serveur REST, moteur serveur OpenAPI et client OpenAPI
4 Schémas d'authentification client Basic auth, jeton Bearer, OAuth2 et JWT génériques intégrés
100% Code source inclus Les sept classes et le runtime Core inclus
12 Mois de mises à jour Chaque version publiée tant que ta licence est active

Deux choses à savoir d'abord

Ce que sgcREST attend de toi, et ce qu'il n'attend pas. Les deux réponses sont courtes.

sgcREST est autonome

Autonome, le runtime sgcWebSockets Core est inclus : la pile serveur et client HTTP/TLS sur laquelle tournent le serveur REST et chaque classe OpenAPI, et la couche JSON qui sérialise chaque requête et réponse. Une seule référence, un seul installateur, et sgcREST tourne sur la bibliothèque Indy standard livrée avec RAD Studio.

Le code source complet accompagne chaque licence, le serveur REST, ses compléments et le moteur OpenAPI se tracent donc dans ton propre débogueur au lieu de disparaître dans un binaire.

Une seule exigence de version

OpenAPI code-first nécessite Delphi XE7+

Générer une spécification OpenAPI à partir d'une classe Delphi annotée s'appuie sur la RTTI arrivée avec Delphi XE7, TsgcOpenAPICodeFirstScanner et TsgcOpenAPICodeFirstDispatcher se compilent donc à partir de XE7. Le serveur REST et ses compléments, ainsi que le moteur OpenAPI spec-first qui route depuis un document JSON ou YAML que tu as déjà, tournent sur tous les compilateurs pris en charge, de Delphi 7 à 13.

Pas de document OpenAPI pour démarrer ? Écris d'abord la classe Delphi et laisse le scanner en générer un, c'est exactement à ça que sert le code-first sur XE7 et versions ultérieures.

Quatre composants de palette, trois classes pur code

Le serveur REST et ses trois compléments sont des composants non visuels sur la page de palette SGC REST, déclarés dans les unités sgcHTTP_REST_Server*. Dépose TsgcHTTPRESTServer sur une fiche ou crée-le en code, puis attache ServerStats et Tenancy selon tes besoins. Le moteur serveur OpenAPI et la classe cliente OpenAPI vivent dans les unités sgcHTTP_OpenAPI_* comme des classes pur code, rien à déposer sur une fiche pour celles-ci : crée une instance, configure-la, et appelle directement ses méthodes.

Serveur REST4 composants

Un serveur, trois compléments à attacher selon tes besoins

TsgcHTTPRESTServer étend le TsgcHTTPServer standard avec une gestion CORS via CORSOptions, et deux propriétés pour des compléments optionnels : ServerStats et Tenancy. TsgcHTTPServerStats compte chaque requête par classe de statut, suit la latence minimale, moyenne et maximale, et sert un point de terminaison /metrics au format Prometheus plus un point de terminaison JSON /health, avec GetEndpointStats pour une répartition par route. TsgcHTTPServer_Tenancy résout le tenant de l'appelant à partir du nom d'hôte, d'un segment de chemin, d'un en-tête de requête ou d'une revendication JWT, et la propriété Tenant du serveur lit le résultat pour la requête en cours. TsgcHTTPServer_Users est un quatrième complément indépendant : un magasin de comptes local avec AddUser, ValidateCredentials, des étiquettes de rôle et un hachage de mot de passe salé, avec chiffrement au repos optionnel, interrogé directement depuis un gestionnaire de route plutôt que rattaché au serveur comme une propriété.

Serveur OpenAPI2 façons de définir une API

Sers une spécification que tu as déjà, ou génère-la depuis ton code

Spec-first : charge un document OpenAPI 3.0 ou 3.1 et TsgcOpenAPIRouteTable construit automatiquement la table de routage à partir de sa section paths. Une requête appariée arrive sous forme de TsgcOpenAPIServerContext, avec un accès typé aux paramètres de chemin et de requête, des aides pour le corps et RespondJSON/RespondError, TsgcOpenAPIServerHandler enveloppe chaque appel dans BeforeHandle, AfterHandle et HandleException, et TsgcOpenAPIJSONValidator vérifie les corps de requête, les paramètres de requête et de chemin par rapport aux schémas JSON que déclare la spécification. Le code-first inverse la source de vérité : annote une classe Delphi ordinaire avec les attributs sgcServiceContract, sgcRoute, sgcHttpGet/sgcHttpPost et sgcFromPath/sgcFromQuery/sgcFromBody, et TsgcOpenAPICodeFirstScanner.GenerateSpec produit le document OpenAPI directement à partir de sa RTTI, sans YAML à écrire à la main. Associe-le à TsgcOpenAPICodeFirstDispatcher et les méthodes annotées sont invoquées directement pour chaque opération, sans chaîne de dispatch manuelle. Le code-first nécessite Delphi XE7 ou ultérieur.

TsgcOpenAPIServerHandler TsgcOpenAPICodeFirstScanner Code-first nécessite Delphi XE7+
Client OpenAPI1 classe

Consomme n'importe quelle API décrite en OpenAPI

TsgcOpenAPI_Client est un client runtime générique pour n'importe quel point de terminaison décrit par un document OpenAPI : HTTP_REQUEST porte l'appel, Authentication couvre l'authentification Basic et les jetons Bearer plus OAuth2 et JWT génériques, et OnBeforeRequest, OnUpload et OnDownload en assurent le suivi.

Un serveur, des compléments composables

Les sept classes se répartissent nettement par rôle. Le serveur REST porte le trafic HTTP, trois compléments ajoutent ce dont une API de production a besoin, et le moteur OpenAPI transforme une spécification, écrite ou générée, en une table de routage fonctionnelle.

Le serveur REST est un TsgcHTTPServer enrichi

TsgcHTTPRESTServer hérite des bindings, du TLS et de la gestion HTTP/2 du serveur HTTP nu livré dans chaque édition de sgcWebSockets, et ajoute par-dessus la gestion CORS plus deux compléments attachables, si bien qu'une API REST obtient des métriques, des contrôles de santé et le multi-tenant sans framework séparé.

Stats, tenancy et utilisateurs sont des compléments, pas des fonctions figées

TsgcHTTPServerStats, TsgcHTTPServer_Tenancy et TsgcHTTPServer_Users sont des composants séparés. Attache ceux dont une API donnée a besoin et laisse les autres de côté, un complément attaché mais non configuré ne coûte rien au serveur à vérifier.

Spec-first et code-first finissent dans la même table de routage

Que le document OpenAPI provienne d'un fichier que tu as chargé ou de TsgcOpenAPICodeFirstScanner.GenerateSpec scannant une classe annotée, les deux sont du JSON, et la même table de routage et le même contexte de requête servent l'un comme l'autre. Seul le scanner code-first lui-même a besoin de Delphi XE7 ou ultérieur.

Le runtime Core est dans la boîte

Autonome, le runtime sgcWebSockets Core est inclus. Il fournit la pile HTTP/TLS sur laquelle tournent le serveur REST et chaque classe OpenAPI, et son code source complet fait partie du package comme tout le reste.

Un serveur REST et un client OpenAPI, côte à côte

Le serveur REST est déclaré dans sgcHTTP_REST_Server, le client OpenAPI dans sgcHTTP_OpenAPI_Client. Le même code se compile de Delphi 7 à 13 et sur C++ Builder.

uses
  sgcHTTP_REST_Server, sgcHTTP_OpenAPI_Client;

var
  RESTServer: TsgcHTTPRESTServer;
  APIClient: TsgcOpenAPI_Client;
  Request: TsgcOpenAPIRequest;
  Response: TsgcOpenAPIResponse;
begin
  // Serveur REST : CORS activé, stats et health/metrics câblés
  RESTServer := TsgcHTTPRESTServer.Create(nil);
  RESTServer.Bindings.Add.Port := 8080;
  RESTServer.CORSOptions.Enabled := True;
  RESTServer.ServerStats := HTTPServerStats1;
  RESTServer.Active := True;

  // Client OpenAPI : appelle n'importe quelle API décrite en OpenAPI avec authentification Basic
  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

// Serveur REST : CORS activé, stats et health/metrics câblés
TsgcHTTPRESTServer *RESTServer = new TsgcHTTPRESTServer(this);
RESTServer->Bindings->Add()->Port = 8080;
RESTServer->CORSOptions->Enabled = true;
RESTServer->ServerStats = HTTPServerStats1;
RESTServer->Active = true;

// Client OpenAPI : appelle n'importe quelle API décrite en OpenAPI avec authentification Basic
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);

Aucun complément, toutes les plateformes

Les sept classes tournent sur la bibliothèque Indy standard livrée avec RAD Studio, toute la gamme de plateformes que couvre déjà sgcWebSockets est donc disponible sans complément requis.

Famille du serveur REST TsgcHTTPRESTServer, ServerStats, Tenancy et Users
Windows Win32 Windows Win64 Linux64 macOS iOS Android
Famille serveur & client OpenAPI Spec-first, code-first et la classe cliente OpenAPI
Windows Win32 Windows Win64 Linux64 macOS iOS Android
Prise en charge des IDE Une seule arborescence source, packages de conception par version
Delphi 7 à 13 C++ Builder
OpenAPI code-first A besoin de la RTTI arrivée avec Delphi XE7
Delphi XE7 à 13
Installateur d'essai L'essai sgcWebSockets All-Access inclut les composants sgcREST
Un seul téléchargement, les sept classes

Télécharger l'installateur d'essai →

Un package autonome

sgcREST se licencie tout seul, à partir de €249 pour un développeur. Toutes les licences incluent le code source complet, 1 an de mises à jour et une remise de renouvellement de 50 % à 70 % : 50 % si tu renouvelles un pack, 60 % pour deux, 70 % pour trois ou plus. sgcAI, sgcMQ, sgcSocial, sgcAuth, sgcHTTP et sgcREST comptent chacun pour un pack. sgcREST est aussi inclus dans le pack All-Access.

sgcREST

€249

Licences Single, Team et Site disponibles.

  • Serveur REST avec CORS, stats, tenancy et utilisateurs
  • Serveur OpenAPI, spec-first et code-first
  • Client OpenAPI pour n'importe quelle API décrite en OpenAPI
  • Runtime sgcWebSockets Core inclus
  • Delphi 7 à 13 et C++ Builder
  • Code source complet
  • 1 an de mises à jour

Aucun complément à ajouter ou retirer au paiement, sgcREST tourne sur la bibliothèque Indy standard livrée avec RAD Studio.

Le paiement liste deux articles : le droit au runtime sgcWebSockets Core, facturé à zéro, et le pack sgcREST lui-même. Détail complet des tarifs.

3,000+Developers
20+Years
761+Components
30+API Integrations
5Platforms
Garantie satisfait ou remboursé de 30 joursPas satisfait ? Demandez un remboursement intégral dans les 30 jours suivant l'achat. Voir la politique de remboursement

API REST et OpenAPI, bâties directement en code natif

Un serveur REST avec stats, multi-tenant et utilisateurs, un serveur OpenAPI qui fonctionne en spec-first ou code-first, et un client OpenAPI pour n'importe quelle API décrite en OpenAPI, avec le runtime inclus et le code source complet dans la boîte. Télécharge l'installateur d'essai All-Access et essaie les sept classes dès aujourd'hui.

Autres produits d'eSeGeCe

Associe sgcREST à nos autres bibliothèques de composants pour Delphi, C++ Builder et .NET.

sgcWebSockets

La bibliothèque complète : clients et serveurs WebSocket, HTTP/2, gRPC, IoT, P2P et composants d'IA. Son édition Enterprise inclut aussi le serveur OpenAPI.

En savoir plus →

sgcHTTP

Composants clients HTTP/2, gRPC et Google Cloud Pub/Sub, Calendar et Firebase Cloud Messaging, avec le runtime Core inclus.

En savoir plus →

sgcAuth

Composants clients OAuth2 et JWT plus l'authentification par passkey WebAuthn, un complément naturel au magasin d'utilisateurs d'une API REST.

En savoir plus →

sgcAI

Composants IA, LLM et MCP. Un seul composant de chat atteint OpenAI, Anthropic, Gemini, DeepSeek, Ollama, Grok et Mistral.

En savoir plus →

sgcMQ

Composants clients natifs MQTT 3.1.1/5.0, AMQP 0.9.1, AMQP 1.0, Apache Kafka et STOMP, avec le runtime Core inclus.

En savoir plus →

sgcOpenAPI

Un produit groupé séparé : un parser OpenAPI 3.x, un générateur natif de SDK Pascal et plus de 1 195 SDK cloud préconçus, pour de la génération de code hors ligne plutôt qu'un client runtime.

En savoir plus →