eSeGeCe — Componentes de comunicação de nível empresarial para Delphi e .NET
DESTAQUE · sgcREST

APIs REST a partir de um contrato OpenAPI, nativas no Delphi

Três componentes cobrem dois trabalhos. O TsgcHTTPRESTServer é um servidor REST com CORS, endpoints opcionais /metrics e /health e resolução multi-tenant de requisições embutida. O TsgcWSAPIServer_OpenAPI carrega um contrato OpenAPI 3.x com LoadFromFile e despacha, valida e autentica toda requisição contra ele. O TsgcOpenAPI_Client é a classe base por trás de clientes tipados para qualquer API descrita em OpenAPI. Autônomo, o runtime sgcWebSockets Core está incluído.

  • 3 classes de componente
  • Servidor REST · Servidor OpenAPI · Cliente OpenAPI
  • CORS, /metrics, /health, multi-tenancy
  • Delphi 7 ao 13 · C++ Builder

Dois Componentes de Paleta, Uma Classe Base de Cliente

O sgcREST é um pacote autônomo. Ele inclui o runtime sgcWebSockets Core sobre o qual é construído, e toda licença vem com código-fonte completo, então o despacho REST e a validação OpenAPI são depurados passo a passo no seu próprio debugger.

2 Componentes de paleta TsgcHTTPRESTServer na página SGC REST, TsgcWSAPIServer_OpenAPI na página SGC OpenAPI.
3 Classes de componente no total Servidor REST, servidor OpenAPI e a classe base do cliente OpenAPI.
2 Endpoints embutidos /metrics e /health, opcionais e servidos atrás de qualquer Authentication que o servidor já impõe.
1 Instalador autônomo O runtime sgcWebSockets Core e a camada HTTP/TLS vêm juntos dentro do pacote.
100% Código-fonte incluído Toda licença carrega o código-fonte completo dos três componentes e do runtime embutido.
sgcREST

Componentes de servidor REST e servidor/cliente OpenAPI para Delphi e C++ Builder. Um pacote autônomo com o runtime sgcWebSockets Core incluído, código-fonte completo e implantação sem royalties.

Publique uma API, ou Consuma Uma

As três classes se dividem claramente por direção. O servidor REST e o servidor OpenAPI publicam endpoints que os seus chamadores alcançam. A classe base do cliente OpenAPI é o que os SDKs gerados usam para chamar os endpoints de outra pessoa.

REST Server

CORS, Métricas, Saúde e Tenancy, Embutidos

O TsgcHTTPRESTServer estende o servidor HTTP do sgcWebSockets com o encanamento do dia a dia que uma API REST precisa: CORSOptions para requisições cross-origin, endpoints opcionais /metrics e /health através de ServerStats, e resolução multi-tenant de requisições através de Tenancy, por host, caminho, cabeçalho ou claim JWT. Tenant expõe o valor resolvido para os seus próprios manipuladores de requisição.

Ver o servidor REST →
OpenAPI Server

Carregue um Contrato, Despache e Valide Toda Requisição

O TsgcWSAPIServer_OpenAPI lê um documento OpenAPI 3.x com LoadFromFile ou LoadFromString e o transforma em um dispatcher ativo: toda requisição recebida é comparada com o contrato e roteada para o seu manipulador OnRequest pelo id da operação. OnValidationError, OnAuthenticate, OnValidateAPIKey, OnValidateBasic e OnValidateBearer cobrem os esquemas de segurança que a especificação declara, e OnBeforeRequest/OnAfterRequest envolvem a chamada.

Ver o servidor OpenAPI →
OpenAPI Client

Uma Classe Base por Trás de Todo SDK Gerado

O TsgcOpenAPI_Client carrega o encanamento de requisição compartilhado por todo cliente gerado: Authentication para Basic, Bearer token, OAuth2 e JWT, HTTP_REQUEST e HTTP_REQUEST_Async para executar uma chamada. Aponte o SetBaseURL para um contrato que você carregou ou gerou por conta própria e ele já está pronto para chamar.

Veja o que ele pode fazer →
Válvula de escape

Todo Callback que a Especificação Precisa

O OnException captura erros do manipulador antes que eles cheguem ao wire, e os eventos de validação e autenticação recebem todos o TsgcOpenAPIServerContext já interpretado, com PathParams, QueryParams e RespondJSON, então nada sobre o motivo de uma chamada ter sido aceita ou rejeitada fica escondido de você.

A superfície de validação →
Multiplataforma

Cinco Plataformas, Um Runtime

O servidor REST e o servidor OpenAPI são descendentes de TsgcHTTPServer, e o cliente OpenAPI roda sobre a mesma pilha HTTPS que o restante do runtime Core. Do Delphi 7 ao RAD Studio 13 e no C++ Builder.

A matriz de recursos →

Páginas de referência de cada componente:

Publique um Endpoint, ou Publique um Contrato

O servidor REST entrega a requisição diretamente a você. O servidor OpenAPI entrega uma operação validada, já correspondida. Os dois compilam da mesma forma do Delphi 7 ao 13 e no C++ Builder.

uses
  sgcHTTP_REST_Server, sgcHTTP_REST_Server_Stats;
var
  RESTServer: TsgcHTTPRESTServer;
  Stats: TsgcHTTPServerStats;
begin
  // Servidor REST: CORS, health/metrics e tenancy em um único componente
  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
  // Servidor OpenAPI: carregue o contrato, despache pelo id da operação
  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;

A mesma forma em Object Pascal e em C++ Builder. A matriz completa de recursos →

Duas Coisas Que Vale Saber Antes

O que o sgcREST precisa de você, e o que não precisa. As duas respostas são curtas, e as duas estão nesta página, não nas letras miúdas.

Três componentes, dois trabalhos
componente                          papel
TsgcHTTPRESTServer                  publica uma API REST: CORS,
                                       /metrics, /health, tenancy
TsgcWSAPIServer_OpenAPI             publica uma API REST a partir
                                       de um contrato OpenAPI 3.x
TsgcOpenAPI_Client                  consome qualquer API descrita
                                       em OpenAPI

Os dois componentes de servidor são descendentes
  de TsgcHTTPServer, então se conectam à mesma Port,
  TLSOptions e Authentication que os seus outros
  servidores sgcWebSockets já usam.

O sgcREST é autônomo

Autônomo, o runtime sgcWebSockets Core está incluído: a pilha de servidor HTTP/TLS sobre a qual o servidor REST e o servidor OpenAPI são executados, e a camada JSON com a qual o cliente OpenAPI decodifica as respostas. Um único instalador, código-fonte completo na caixa.

Servidor REST e servidor OpenAPI compartilham uma base

O TsgcHTTPRESTServer e o servidor HTTP ao qual o servidor OpenAPI se conecta são ambos descendentes de TsgcHTTPServer, então CORS, TLS, Authentication e o pipeline de requisições se comportam da mesma forma, seja qual for o que estiver publicando a sua API.

O cliente OpenAPI precisa só do contrato

O TsgcOpenAPI_Client resolve caminhos, cabeçalhos e autenticação diretamente a partir do documento OpenAPI, sobre a pilha HTTPS pura do runtime Core.

Delphi e C++ Builder

O sgcREST tem como alvo o Delphi 7 até o RAD Studio 13 e o C++ Builder. O servidor REST também vem dentro do sgcWebSockets Professional e superior, e o servidor e o cliente OpenAPI também vêm com o pacote sgcOpenAPI existente, então uma licença já existente pode já cobrir você. O instalador de avaliação gratuita é o trial All-Access do sgcWebSockets, então as três classes podem ser avaliadas hoje mesmo.

OpenAPI 3.x CORS Multi-tenancy /metrics & /health Código-fonte completo

Cada componente e propriedade →

O sgcREST implementa as superfícies REST e OpenAPI que o seu contrato descreve, em vez de encapsular um gerador de código que você não controla, então requisições, validação e dispatch são todos métodos e eventos de primeira classe, e o código-fonte completo significa que nada no meio do caminho é uma caixa-preta.

Treze Bibliotecas, Uma Caixa de Ferramentas

O sgcREST é uma das treze bibliotecas de componentes da eSeGeCe para Delphi, C++ Builder e .NET. Elas compartilham convenções, vêm com código-fonte completo e são implantadas sem royalties.

sgcREST

Servidor REST, servidor OpenAPI e componentes cliente OpenAPI para Delphi e C++ Builder. Autônomo, com o runtime sgcWebSockets Core incluído.

Saiba mais →

sgcHTTP

Cliente HTTP/2, cliente gRPC e clientes Google Cloud Pub/Sub, Calendar e FCM para Delphi e C++ Builder. Autônomo, com o runtime sgcWebSockets Core incluído.

Saiba mais →

sgcAuth

Cliente OAuth2, cliente JWT e suporte a WebAuthn para Delphi e C++ Builder. Autônomo, com o runtime sgcWebSockets Core incluído.

Saiba mais →

sgcWebSockets

WebSocket, HTTP/2, MQTT, AMQP, WebRTC, IA e mais de 30 integrações de API para Delphi, C++ Builder, Lazarus e .NET. A edição Enterprise também inclui o gRPC.

Saiba mais →

sgcMQ

Componentes cliente de MQTT, AMQP 0.9.1 e 1.0, Apache Kafka e STOMP para Delphi e C++ Builder. Autônomo, com o runtime sgcWebSockets Core incluído.

Saiba mais →

sgcSocial

Componentes cliente de Telegram e WhatsApp Business para Delphi e C++ Builder. Autônomo, com o runtime sgcWebSockets Core incluído.

Saiba mais →

sgcHTML

Componentes de HTML e interface do lado do servidor, sobre Bootstrap 5 e htmx, para Delphi, C++ Builder e .NET.

Saiba mais →

sgcQUIC

Transporte QUIC bruto e um cliente e servidor HTTP/3, com WebTransport. Um complemento do sgcWebSockets Enterprise.

Saiba mais →

sgcAI

Componentes de IA, LLM e MCP para Delphi e C++ Builder. Sete provedores de LLM por trás de um único componente, além de MCP, embeddings e fala. Autônomo, com o runtime sgcWebSockets Core incluído.

Saiba mais →

sgcOpenAPI

Analisador OpenAPI 3.x, gerador nativo de SDK Pascal, componente servidor OpenAPI, e mais de 1.195 SDKs de nuvem pré-compilados.

Saiba mais →

sgcSign

XAdES, PAdES, CAdES e ASiC para documentos, Authenticode, ClickOnce, NuGet e VSIX para código.

Saiba mais →

sgcBiometrics

Windows Hello, sensores de impressão digital e o Windows Biometric Framework para Delphi e C++ Builder.

Saiba mais →

sgcIndy

Componentes Indy TCP/IP atualizados com TLS moderno, IPv6 e HTTP/2, do Delphi 7 ao 13.

Saiba mais →

Ver preços e licenças Baixar a versão de avaliação gratuita

O Que os Desenvolvedores Dizem

Confiado por desenvolvedores Delphi, C++ Builder, Lazarus e .NET ao redor do mundo.

A biblioteca sgcWebSockets de vocês é muito útil e fácil de configurar. Continuem com o ótimo trabalho!

Simone Moretti Desenvolvedor Delphi

O sgcWebSockets é incrível e o suporte de vocês é o melhor!

Christian Meyer Fundador & CTO

Muito obrigado pela ajuda e pelo suporte, eu adoro os componentes de vocês.

Mark Steinfeld CTO

Você está vendo a visão de REST & OpenAPI da eSeGeCe.

Mostre outro ângulo →

APIs REST, Contratos OpenAPI, Código Nativo

Um servidor REST, um servidor OpenAPI e um cliente OpenAPI, com o runtime sgcWebSockets Core incluído e código-fonte completo na caixa.