sgcREST: servidor de API REST y componentes OpenAPI para Delphi y C++ Builder
Producto independiente REST Server & OpenAPI

sgcREST: servidor de API REST y componentes OpenAPI para Delphi y C++ Builder

Dos tareas, siete clases. TsgcHTTPRESTServer es un servidor de API REST con gestión de CORS y tres complementos que puedes adjuntar: estadísticas de peticiones, multi-tenencia y un almacén local de usuarios. Junto a él, un motor OpenAPI sirve una API directamente desde una especificación, o genera esa especificación a partir de una clase Delphi con atributos, y TsgcOpenAPI_Client consume cualquier API descrita con OpenAPI. sgcREST es independiente, incluye el runtime sgcWebSockets Core sobre el que están construidas las siete clases.

Código fuente completo
Delphi 7 a 13 y C++ Builder
Runtime incluido sgcWebSockets Core El runtime HTTP, TLS y JSON bajo cada clase
REST Server TsgcHTTPRESTServer
OpenAPI TsgcOpenAPI_Client
4 Componentes en la paleta Servidor REST, estadísticas, tenencia y usuarios, una sola página en la paleta
7 Clases en total Familia del servidor REST, motor del servidor OpenAPI y cliente OpenAPI
4 Esquemas de autenticación del cliente Basic auth, token bearer, OAuth2 y JWT genéricos integrados
100% Código fuente incluido Las siete clases y el runtime Core incluido
12 Meses de actualizaciones Cada versión publicada mientras tu licencia esté activa

Dos cosas que conviene saber primero

Qué necesita sgcREST de tu parte, y qué no necesita. Las dos respuestas son breves.

sgcREST es autocontenido

Independiente, el runtime sgcWebSockets Core viene incluido: la pila cliente y servidor HTTP/TLS sobre la que se ejecutan el servidor REST y cada clase OpenAPI, y la capa JSON que serializa cada petición y respuesta. Un solo SKU, un solo instalador, y sgcREST funciona sobre la librería Indy estándar que se instala con RAD Studio.

El código fuente completo se entrega con cada licencia, así que puedes recorrer paso a paso el servidor REST, sus complementos y el motor OpenAPI en tu propio depurador, en lugar de verlos desaparecer dentro de un binario.

Un requisito de versión

OpenAPI code-first necesita Delphi XE7+

Generar una especificación OpenAPI a partir de una clase Delphi con atributos depende de la RTTI que llegó en Delphi XE7, así que TsgcOpenAPICodeFirstScanner y TsgcOpenAPICodeFirstDispatcher compilan desde XE7 en adelante. El servidor REST y sus complementos, y el motor OpenAPI spec-first que enruta desde un documento JSON o YAML que ya tengas, funcionan en todos los compiladores compatibles, de Delphi 7 a 13.

¿No tienes ningún documento OpenAPI del que partir? Escribe primero la clase Delphi y deja que el scanner genere uno, para eso está exactamente code-first en XE7 y versiones posteriores.

Cuatro componentes en la paleta, tres clases solo de código

El servidor REST y sus tres complementos son componentes no visuales en la página de paleta SGC REST, declarados en las unidades sgcHTTP_REST_Server*. Suelta TsgcHTTPRESTServer en un formulario o créalo por código, y luego adjunta ServerStats y Tenancy según lo necesites. El motor del servidor OpenAPI y la clase del cliente OpenAPI viven en las unidades sgcHTTP_OpenAPI_* como clases solo de código, no hay nada que soltar en un formulario para ellas: crea una, configúrala y llama a sus métodos directamente.

REST Server4 componentes

Un servidor, tres complementos que adjuntas según los necesites

TsgcHTTPRESTServer extiende el TsgcHTTPServer estándar con gestión de CORS a través de CORSOptions, y dos propiedades para complementos opcionales: ServerStats y Tenancy. TsgcHTTPServerStats cuenta cada petición por clase de estado, registra la latencia mínima, media y máxima, y sirve un endpoint /metrics en formato Prometheus además de un endpoint JSON /health, con GetEndpointStats para un desglose por ruta. TsgcHTTPServer_Tenancy resuelve el tenant de quien llama a partir del nombre de host, un segmento de la ruta, una cabecera de la petición o un claim JWT, y la propiedad Tenant del propio servidor lee el resultado para la petición que se está atendiendo. TsgcHTTPServer_Users es un cuarto complemento, independiente: un almacén local de cuentas con AddUser, ValidateCredentials, etiquetas de rol y hash de contraseña con sal, con cifrado en reposo opcional, consultado directamente desde un manejador de ruta en lugar de conectarse al servidor como propiedad.

OpenAPI Server2 formas de definir una API

Sirve una especificación que ya tengas, o genera una a partir de tu código

Spec-first: carga un documento OpenAPI 3.0 o 3.1 y TsgcOpenAPIRouteTable construye la tabla de rutas a partir de su sección paths automáticamente. Una petición encontrada llega como un TsgcOpenAPIServerContext, con acceso tipado a parámetros de ruta y de consulta, ayudantes de cuerpo y RespondJSON/RespondError, TsgcOpenAPIServerHandler envuelve cada llamada en BeforeHandle, AfterHandle y HandleException, y TsgcOpenAPIJSONValidator valida cuerpos, parámetros de consulta y de ruta contra los JSON Schemas que declara la especificación. Code-first invierte la fuente de la verdad: anota una clase Delphi normal con los atributos sgcServiceContract, sgcRoute, sgcHttpGet/sgcHttpPost y sgcFromPath/sgcFromQuery/sgcFromBody, y TsgcOpenAPICodeFirstScanner.GenerateSpec produce el documento OpenAPI directamente a partir de su RTTI, sin YAML que escribir a mano. Combínalo con TsgcOpenAPICodeFirstDispatcher y los métodos anotados se invocan directamente para cada operación, sin cadena de despacho manual. Code-first requiere Delphi XE7 o posterior.

TsgcOpenAPIServerHandler TsgcOpenAPICodeFirstScanner Code-first necesita Delphi XE7+
OpenAPI Client1 clase

Consume cualquier API descrita con OpenAPI

TsgcOpenAPI_Client es un cliente de runtime genérico para cualquier endpoint que describa un documento OpenAPI: HTTP_REQUEST transporta la llamada, Authentication cubre autenticación Basic y tokens bearer además de OAuth2 y JWT genéricos, y OnBeforeRequest, OnUpload y OnDownload la siguen.

Un servidor, complementos combinables

Las siete clases se dividen claramente según su función. El servidor REST transporta el tráfico HTTP, tres complementos añaden lo que una API en producción necesita, y el motor OpenAPI convierte una especificación, escrita o generada, en una tabla de rutas funcional.

El servidor REST es un TsgcHTTPServer con extras

TsgcHTTPRESTServer hereda los bindings, la gestión de TLS y de HTTP/2 del servidor HTTP simple que se incluye en todas las ediciones de sgcWebSockets, y añade encima gestión de CORS más dos complementos adjuntables, de modo que una API REST obtiene métricas, comprobaciones de salud y multi-tenencia sin un framework aparte.

Estadísticas, tenencia y usuarios son complementos, no funciones integradas de fábrica

TsgcHTTPServerStats, TsgcHTTPServer_Tenancy y TsgcHTTPServer_Users son componentes independientes. Adjunta los que necesite una API concreta y deja el resto fuera, un complemento adjunto pero sin configurar no le cuesta nada al servidor comprobar.

Spec-first y code-first acaban en la misma tabla de rutas

Tanto si el documento OpenAPI viene de un archivo que cargaste como si viene de TsgcOpenAPICodeFirstScanner.GenerateSpec escaneando una clase con atributos, ambos son JSON, y la misma tabla de rutas y el mismo contexto de petición sirven cualquiera de los dos. Solo el propio scanner code-first necesita Delphi XE7 o posterior.

El runtime Core viene en la caja

Independiente, el runtime sgcWebSockets Core viene incluido. Aporta la pila HTTP/TLS sobre la que se ejecutan el servidor REST y cada clase OpenAPI, y su código fuente completo forma parte del paquete como todo lo demás.

Un servidor REST y un cliente OpenAPI, lado a lado

El servidor REST está declarado en sgcHTTP_REST_Server, el cliente OpenAPI en sgcHTTP_OpenAPI_Client. El mismo código compila en Delphi 7 a 13 y en C++ Builder.

uses
  sgcHTTP_REST_Server, sgcHTTP_OpenAPI_Client;

var
  RESTServer: TsgcHTTPRESTServer;
  APIClient: TsgcOpenAPI_Client;
  Request: TsgcOpenAPIRequest;
  Response: TsgcOpenAPIResponse;
begin
  // REST server: CORS on, stats and health/metrics wired in
  RESTServer := TsgcHTTPRESTServer.Create(nil);
  RESTServer.Bindings.Add.Port := 8080;
  RESTServer.CORSOptions.Enabled := True;
  RESTServer.ServerStats := HTTPServerStats1;
  RESTServer.Active := True;

  // 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;
// include: sgcHTTP_REST_Server.hpp, sgcHTTP_OpenAPI_Client.hpp

// REST server: CORS on, stats and health/metrics wired in
TsgcHTTPRESTServer *RESTServer = new TsgcHTTPRESTServer(this);
RESTServer->Bindings->Add()->Port = 8080;
RESTServer->CORSOptions->Enabled = true;
RESTServer->ServerStats = HTTPServerStats1;
RESTServer->Active = true;

// OpenAPI client: call any OpenAPI-described API with basic auth
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);

Sin complementos, todas las plataformas

Las siete clases funcionan sobre la librería Indy estándar que se instala con RAD Studio, así que todo el rango de plataformas que ya cubre sgcWebSockets está disponible sin necesidad de ningún complemento.

Familia del servidor REST TsgcHTTPRESTServer, ServerStats, Tenancy y Users
Windows Win32 Windows Win64 Linux64 macOS iOS Android
Familia de servidor y cliente OpenAPI Spec-first, code-first y la clase cliente OpenAPI
Windows Win32 Windows Win64 Linux64 macOS iOS Android
Soporte de IDE Un único árbol de código, paquetes de diseño por versión
Delphi 7 a 13 C++ Builder
OpenAPI code-first Necesita la RTTI que llegó en Delphi XE7
Delphi XE7 a 13
Instalador de prueba La prueba All-Access de sgcWebSockets incluye los componentes de sgcREST
Una sola descarga, las siete clases

Descargar el instalador de prueba →

Un paquete independiente

sgcREST se licencia por separado, desde €249 para un solo desarrollador. Todas las licencias incluyen código fuente completo, 1 año de actualizaciones y un descuento de renovación del 50% al 70%: un 50% al renovar un pack, un 60% con dos y un 70% con tres o más. sgcAI, sgcMQ, sgcSocial, sgcAuth, sgcHTTP y sgcREST cuentan cada uno como un pack. sgcREST también está incluido en el paquete All-Access.

sgcREST

€249

Disponible en licencias Single, Team y Site.

  • Servidor REST con CORS, estadísticas, tenencia y usuarios
  • Servidor OpenAPI, spec-first y code-first
  • Cliente OpenAPI para cualquier API descrita con OpenAPI
  • Runtime sgcWebSockets Core incluido
  • Delphi 7 a 13 y C++ Builder
  • Código fuente completo
  • 1 año de actualizaciones

Sin complemento que añadir ni quitar en el checkout, sgcREST funciona sobre la librería Indy estándar que se instala con RAD Studio.

El pedido muestra dos líneas: el derecho de uso del runtime sgcWebSockets Core, que se factura a cero, y el propio paquete sgcREST. Todos los detalles de precios.

3,000+Developers
20+Years
761+Components
30+API Integrations
5Platforms
Garantía de devolución de 30 días¿No estás satisfecho? Solicita un reembolso completo en los 30 días posteriores a la compra. Ver política de reembolso

APIs REST y OpenAPI, integradas directamente en código nativo

Un servidor REST con estadísticas, multi-tenencia y usuarios, un servidor OpenAPI que funciona spec-first o code-first, y un cliente OpenAPI para cualquier API descrita con OpenAPI, con el runtime incluido y el código fuente completo en la caja. Descarga hoy mismo el instalador de prueba All-Access y prueba las siete clases.

Otros productos de eSeGeCe

Combina sgcREST con nuestras otras librerías de componentes para Delphi, C++ Builder y .NET.

sgcWebSockets

La librería completa: clientes y servidores WebSocket, HTTP/2, gRPC, IoT, P2P y componentes de IA. Su edición Enterprise también incluye el servidor OpenAPI.

Más información →

sgcHTTP

Componentes cliente de HTTP/2, gRPC y Google Cloud Pub/Sub, Calendar y Firebase Cloud Messaging, con el runtime Core incluido.

Más información →

sgcAuth

Componentes cliente de OAuth2 y JWT además de inicio de sesión con passkeys WebAuthn, un complemento natural para el almacén de usuarios de una API REST.

Más información →

sgcAI

Componentes de IA, LLM y MCP. Un solo componente de chat llega a OpenAI, Anthropic, Gemini, DeepSeek, Ollama, Grok y Mistral.

Más información →

sgcMQ

Componentes cliente nativos de MQTT 3.1.1/5.0, AMQP 0.9.1, AMQP 1.0, Apache Kafka y STOMP, con el runtime Core incluido.

Más información →

sgcOpenAPI

Un producto empaquetado aparte: un parser de OpenAPI 3.x, un generador nativo de SDK Pascal y más de 1.195 SDK de nube ya construidos, para generación de código sin conexión en lugar de un cliente en tiempo de ejecución.

Más información →