sgcREST: componentes de servidor REST e OpenAPI para Delphi e C++ Builder
Produto autônomo Servidor REST & OpenAPI

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

Dois trabalhos, sete classes. O TsgcHTTPRESTServer é um servidor REST API com tratamento de CORS e três complementos anexáveis: estatísticas de requisições, multi-tenancy e um armazenamento local de usuários. Ao lado dele, um mecanismo OpenAPI serve uma API diretamente a partir de uma especificação, ou gera essa especificação a partir de uma classe Delphi anotada, e o TsgcOpenAPI_Client consome qualquer API descrita em OpenAPI. O sgcREST é autônomo, ele já traz embutido o runtime sgcWebSockets Core sobre o qual todas as classes são construídas.

Código-fonte completo
Delphi 7 a 13 & C++ Builder
Runtime embutido sgcWebSockets Core O runtime de HTTP, TLS e JSON por baixo de todas as classes
Servidor REST TsgcHTTPRESTServer
OpenAPI TsgcOpenAPI_Client
4 Componentes de paleta Servidor REST, estatísticas, tenancy e usuários, uma página na paleta
7 Classes no total Família do servidor REST, mecanismo de servidor OpenAPI e cliente OpenAPI
4 Esquemas de autenticação do cliente Basic auth, bearer token, OAuth2 e JWT genéricos integrados
100% Código-fonte incluído As sete classes e o runtime Core embutido
12 Meses de atualizações Toda versão lançada enquanto a sua licença estiver ativa

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.

O sgcREST é autossuficiente

Autônomo, o runtime sgcWebSockets Core está incluído: a pilha de cliente e servidor HTTP/TLS sobre a qual o servidor REST e toda classe OpenAPI são executados, e a camada JSON que serializa toda requisição e resposta. Um único SKU, um único instalador, e o sgcREST roda sobre a biblioteca Indy padrão que acompanha o RAD Studio.

Toda licença inclui o código-fonte completo, então o servidor REST, os seus complementos e o mecanismo OpenAPI são depurados passo a passo no seu próprio debugger, em vez de desaparecer dentro de um binário.

Um requisito de versão

OpenAPI code-first precisa do Delphi XE7+

Gerar uma especificação OpenAPI a partir de uma classe Delphi anotada depende do RTTI que chegou no Delphi XE7, então o TsgcOpenAPICodeFirstScanner e o TsgcOpenAPICodeFirstDispatcher compilam a partir do XE7. O servidor REST e os seus complementos, e o mecanismo OpenAPI spec-first que roteia a partir de um documento JSON ou YAML que você já tem, rodam em todo compilador compatível, do Delphi 7 ao 13.

Não tem um documento OpenAPI para começar? Escreva a classe Delphi primeiro e deixe o scanner gerar um, é exatamente para isso que o code-first serve a partir do XE7.

Quatro componentes de paleta, três classes apenas de código

O servidor REST e os seus três complementos são componentes não visuais na página de paleta SGC REST, declarados nas units sgcHTTP_REST_Server*. Solte o TsgcHTTPRESTServer em um formulário ou crie-o em código, então anexe ServerStats e Tenancy conforme necessário. O mecanismo de servidor OpenAPI e a classe cliente OpenAPI vivem nas units sgcHTTP_OpenAPI_* como classes apenas de código, não há nada para soltar em um formulário para essas: crie uma, configure-a, e chame os seus métodos diretamente.

REST Server4 componentes

Um servidor, três complementos que você anexa conforme necessário

O TsgcHTTPRESTServer estende o TsgcHTTPServer padrão com tratamento de CORS através de CORSOptions, e duas propriedades para complementos opcionais: ServerStats e Tenancy. O TsgcHTTPServerStats conta toda requisição por classe de status, rastreia a latência mínima, média e máxima, e serve um endpoint /metrics no formato Prometheus além de um endpoint JSON /health, com GetEndpointStats para um detalhamento por rota. O TsgcHTTPServer_Tenancy resolve o tenant do chamador a partir do nome do host, um segmento de caminho, um cabeçalho de requisição ou uma claim JWT, e a própria propriedade Tenant do servidor lê o resultado para a requisição em andamento. O TsgcHTTPServer_Users é um quarto complemento, independente: um armazenamento local de contas com AddUser, ValidateCredentials, tags de papel e hashing de senha salgado, com criptografia opcional em repouso, consultado diretamente a partir de um manipulador de rota em vez de conectado ao servidor como propriedade.

OpenAPI Server2 formas de definir uma API

Sirva uma especificação que você já tem, ou gere uma a partir do seu código

Spec-first: carregue um documento OpenAPI 3.0 ou 3.1 e o TsgcOpenAPIRouteTable constrói a tabela de rotas automaticamente a partir da sua seção paths. Uma requisição correspondida chega como um TsgcOpenAPIServerContext, com acesso tipado a parâmetros de caminho e query, auxiliares de corpo e RespondJSON/RespondError, o TsgcOpenAPIServerHandler envolve toda chamada em BeforeHandle, AfterHandle e HandleException, e o TsgcOpenAPIJSONValidator verifica corpos, parâmetros de query e de caminho contra os JSON Schemas que a especificação declara. O code-first inverte a fonte da verdade: anote uma classe Delphi comum com os atributos sgcServiceContract, sgcRoute, sgcHttpGet/sgcHttpPost e sgcFromPath/sgcFromQuery/sgcFromBody, e o TsgcOpenAPICodeFirstScanner.GenerateSpec produz o documento OpenAPI diretamente a partir do seu RTTI, sem YAML para escrever à mão. Combine-o com o TsgcOpenAPICodeFirstDispatcher e os métodos anotados são invocados diretamente para cada operação, sem cadeia de dispatch manual. O code-first exige Delphi XE7 ou posterior.

TsgcOpenAPIServerHandler TsgcOpenAPICodeFirstScanner Code-first precisa do Delphi XE7+
OpenAPI Client1 classe

Consuma qualquer API descrita em OpenAPI

O TsgcOpenAPI_Client é um cliente de runtime genérico para qualquer endpoint que um documento OpenAPI descreva: HTTP_REQUEST carrega a chamada, Authentication cobre autenticação Basic e bearer tokens além de OAuth2 e JWT genéricos, e OnBeforeRequest, OnUpload e OnDownload a acompanham.

Um servidor, complementos combináveis

As sete classes se dividem claramente por função. O servidor REST carrega o tráfego HTTP, três complementos adicionam o que uma API de produção precisa, e o mecanismo OpenAPI transforma uma especificação, escrita ou gerada, em uma tabela de rotas funcional.

O servidor REST é um TsgcHTTPServer com extras

O TsgcHTTPRESTServer herda os bindings, o TLS e o tratamento de HTTP/2 do servidor HTTP simples que acompanha toda edição do sgcWebSockets, e adiciona tratamento de CORS mais dois complementos anexáveis por cima, então uma API REST ganha métricas, health checks e multi-tenancy sem um framework separado.

Estatísticas, tenancy e usuários são complementos, não recursos embutidos

O TsgcHTTPServerStats, o TsgcHTTPServer_Tenancy e o TsgcHTTPServer_Users são componentes separados. Anexe os que uma determinada API precisa e deixe o restante de fora, um complemento anexado mas não configurado não custa nada ao servidor verificar.

Spec-first e code-first terminam na mesma tabela de rotas

Seja o documento OpenAPI vindo de um arquivo que você carregou ou do TsgcOpenAPICodeFirstScanner.GenerateSpec varrendo uma classe anotada, os dois são JSON, e a mesma tabela de rotas e o mesmo contexto de requisição atendem qualquer um deles. Apenas o próprio scanner code-first precisa do Delphi XE7 ou posterior.

O runtime Core está na caixa

Autônomo, o runtime sgcWebSockets Core está incluído. Ele contribui com a pilha HTTP/TLS sobre a qual o servidor REST e toda classe OpenAPI são executados, e o seu código-fonte completo faz parte do pacote como tudo o mais.

Um servidor REST e um cliente OpenAPI, lado a lado

O servidor REST é declarado em sgcHTTP_REST_Server, o cliente OpenAPI em sgcHTTP_OpenAPI_Client. O mesmo código compila do Delphi 7 ao 13 e no C++ Builder.

uses
  sgcHTTP_REST_Server, sgcHTTP_OpenAPI_Client;

var
  RESTServer: TsgcHTTPRESTServer;
  APIClient: TsgcOpenAPI_Client;
  Request: TsgcOpenAPIRequest;
  Response: TsgcOpenAPIResponse;
begin
  // Servidor REST: CORS ativado, estatísticas e health/metrics conectados
  RESTServer := TsgcHTTPRESTServer.Create(nil);
  RESTServer.Bindings.Add.Port := 8080;
  RESTServer.CORSOptions.Enabled := True;
  RESTServer.ServerStats := HTTPServerStats1;
  RESTServer.Active := True;

  // Cliente OpenAPI: chame qualquer API descrita em OpenAPI com autenticação básica
  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

// Servidor REST: CORS ativado, estatísticas e health/metrics conectados
TsgcHTTPRESTServer *RESTServer = new TsgcHTTPRESTServer(this);
RESTServer->Bindings->Add()->Port = 8080;
RESTServer->CORSOptions->Enabled = true;
RESTServer->ServerStats = HTTPServerStats1;
RESTServer->Active = true;

// Cliente OpenAPI: chame qualquer API descrita em OpenAPI com autenticação básica
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);

Nenhum complemento, todas as plataformas

As sete classes rodam sobre a biblioteca Indy padrão que acompanha o RAD Studio, então toda a faixa de plataformas que o sgcWebSockets já cobre está disponível sem necessidade de complemento.

Família do servidor REST TsgcHTTPRESTServer, ServerStats, Tenancy & Users
Windows Win32 Windows Win64 Linux64 macOS iOS Android
Família do servidor e cliente OpenAPI Spec-first, code-first e a classe cliente OpenAPI
Windows Win32 Windows Win64 Linux64 macOS iOS Android
Suporte de IDE Uma única árvore de código-fonte, pacotes de design-time por versão
Delphi 7 a 13 C++ Builder
OpenAPI code-first Precisa do RTTI que chegou no Delphi XE7
Delphi XE7 a 13
Instalador de avaliação A avaliação All-Access do sgcWebSockets inclui os componentes sgcREST
Um único download, as sete classes

Baixar o instalador de avaliação →

Um pacote autônomo

O sgcREST é licenciado por conta própria, a partir de €249 para um único desenvolvedor. Todas as licenças incluem código-fonte completo, 1 ano de atualizações e de 50% a 70% de desconto na renovação: 50% ao renovar um pacote, 60% para dois, 70% para três ou mais. sgcAI, sgcMQ, sgcSocial, sgcAuth, sgcHTTP e sgcREST contam cada um como um pacote. O sgcREST também está incluído no pacote All-Access.

sgcREST

€249

Licenças Single, Team e Site disponíveis.

  • Servidor REST com CORS, estatísticas, tenancy e usuários
  • Servidor OpenAPI, spec-first e code-first
  • Cliente OpenAPI para qualquer API descrita em OpenAPI
  • Runtime sgcWebSockets Core incluído
  • Delphi 7 a 13 & C++ Builder
  • Código-fonte completo
  • 1 ano de atualizações

Nenhum complemento para adicionar ou remover no checkout, o sgcREST roda sobre a biblioteca Indy padrão que acompanha o RAD Studio.

O checkout lista dois itens: o direito de uso do runtime sgcWebSockets Core, cobrado a zero, e o próprio pacote sgcREST. Detalhes completos de preços.

3,000+Developers
20+Years
761+Components
30+API Integrations
5Platforms
Garantia de reembolso de 30 diasNão ficou satisfeito? Solicite o reembolso total em até 30 dias após a compra. Ver política de reembolso

APIs REST e OpenAPI, construídas direto em código nativo

Um servidor REST com estatísticas, multi-tenancy e usuários, um servidor OpenAPI que funciona spec-first ou code-first, e um cliente OpenAPI para qualquer API descrita em OpenAPI, com o runtime embutido e o código-fonte completo na caixa. Baixe o instalador de avaliação All-Access e experimente as sete classes hoje mesmo.

Outros produtos da eSeGeCe

Combine o sgcREST com as nossas outras bibliotecas de componentes para Delphi, C++ Builder e .NET.

sgcWebSockets

A biblioteca completa: clientes e servidores WebSocket, HTTP/2, gRPC, IoT, P2P e componentes de IA. A sua edição Enterprise também inclui o servidor OpenAPI.

Saiba mais →

sgcHTTP

Componentes cliente de HTTP/2, gRPC e Google Cloud Pub/Sub, Calendar e Firebase Cloud Messaging, com o runtime Core embutido.

Saiba mais →

sgcAuth

Componentes cliente OAuth2 e JWT, além de login por passkey com WebAuthn, uma combinação natural com o armazenamento de usuários de uma API REST.

Saiba mais →

sgcAI

Componentes de IA, LLM e MCP. Um único componente de chat alcança OpenAI, Anthropic, Gemini, DeepSeek, Ollama, Grok e Mistral.

Saiba mais →

sgcMQ

Componentes cliente nativos de MQTT 3.1.1/5.0, AMQP 0.9.1, AMQP 1.0, Apache Kafka e STOMP, com o runtime Core embutido.

Saiba mais →

sgcOpenAPI

Um produto separado: um analisador OpenAPI 3.x, um gerador nativo de SDK Pascal e mais de 1.195 SDKs de nuvem pré-compilados, para geração de código offline em vez de um cliente de runtime.

Saiba mais →