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

Pare de escrever clientes REST à mão

Aponte o sgcOpenAPI para um documento OpenAPI 3.x. O analisador lê o documento, o gerador emite um SDK nativo em Object Pascal e o componente servidor OpenAPI publica os seus próprios endpoints de volta como uma especificação viva. Ou pule o gerador por completo, porque mais de 1.195 SDKs para AWS, Azure, Google Cloud e Microsoft Graph já vêm prontos e inclusos.

  • OpenAPI 3.0 e 3.1
  • JSON e YAML
  • Swagger 2.0 convertido automaticamente
  • Do Delphi 7 ao RAD Studio 13

O SDK de que você precisa provavelmente já existe

Todos os planos do sgcOpenAPI, Single, Team e Site, incluem o analisador, o gerador de código, o componente servidor OpenAPI e toda a biblioteca de SDKs pré-compilados. Nada é vendido à parte.

1.195+ SDKs de nuvem pré-compilados Gerados a partir das especificações OpenAPI oficiais e atualizados regularmente.
280+ Serviços da Amazon AWS SDKs de serviços REST cobrindo S3, EC2, Lambda, DynamoDB, SQS, SNS, CloudFormation e mais.
650+ Serviços do Microsoft Azure VMs do Azure, Blob Storage, Functions, Cosmos DB, Key Vault e mais.
250+ Serviços do Google Cloud Compute Engine, Cloud Storage, BigQuery, Pub/Sub, Cloud Functions e mais.
15+ SDKs do Microsoft Graph Office 365, Microsoft Teams, OneDrive, Outlook e Active Directory.
sgcOpenAPI

Um produto único para Delphi e C++ Builder: um analisador OpenAPI 3.x, um gerador nativo de SDK Pascal, um componente servidor OpenAPI e mais de 1.195 SDKs de nuvem pré-compilados. Código-fonte completo, implantação sem royalties.

Quatro nuvens, já em Pascal

Você não precisa gerar nada para começar. As quatro maiores plataformas de nuvem já vêm como SDKs Pascal prontos para uso dentro do sgcOpenAPI, gerados a partir das especificações oficiais e mantidos atualizados.

280+ serviços

Amazon AWS

SDKs de serviços REST cobrindo S3, EC2, Lambda, DynamoDB, SQS, SNS, CloudFormation e mais. Solte a unit no projeto e chame o serviço com classes de requisição e resposta tipadas.

Ver SDKs da AWS →
650+ serviços

Microsoft Azure

O maior conjunto da biblioteca. VMs do Azure, Blob Storage, Functions, Cosmos DB, Key Vault e o resto do plano de controle do Azure, cada um deles um cliente Pascal gerado.

Ver SDKs do Azure →
250+ serviços

Google Cloud

Compute Engine, Cloud Storage, BigQuery, Pub/Sub, Cloud Functions e mais.

Ver SDKs do Google →
15+ SDKs

Microsoft Graph

Office 365, Microsoft Teams, OneDrive, Outlook e Active Directory, através da Graph API.

Ver SDKs da Microsoft →
Todo o resto

Qualquer outra especificação

Se a API publica um documento OpenAPI ou Swagger, o gerador o transforma no mesmo tipo de unit Pascal tipada. Não existe lista de permissões.

Recursos do gerador →

Guias práticos, de uma especificação pública a um cliente Delphi que compila:

Especificação entra, código que compila sai

Cinco passos, todos dentro da IDE. Sem Node.js, sem gerador de código em Java, sem template engine para aprender.

  1. 1 Aponte para uma especificação

    Carregue um documento OpenAPI 3.x de um arquivo, de uma URL ou de uma string, em JSON ou YAML. Arquivos Swagger 1.x e 2.x são detectados e convertidos para o modelo OpenAPI 3.x automaticamente.

  2. 2 Analise

    O TsgcOpenAPIParser resolve ponteiros $ref, incluindo arquivos externos e referências circulares, achata allOf, oneOf e anyOf, e reporta erros estruturais com detalhe por linha.

  3. 3 Gere

    O TsgcOpenAPIGenerator emite classes, records e enumerações Pascal fortemente tipados, agrupados em uma classe por tag, além de documentação em PDF e CHM junto com o código.

  4. 4 Compile

    Solte as units geradas no projeto. Não há dependências externas além do runtime do sgcOpenAPI, do Delphi 7 ao RAD Studio 13 e do C++ Builder 2007 ao 13.

  5. 5 Chame

    Defina a BaseURL, defina as credenciais e chame a operação. Métodos type-safe, resultados tipados, IntelliSense completo na IDE.

uses
  sgcOpenAPI_Parser, sgcOpenAPI_Generator;
var
  vParser: TsgcOpenAPIParser;
  vGen: TsgcOpenAPIGenerator;
begin
  vParser := TsgcOpenAPIParser.Create(nil);
  try
    vParser.LoadFromFile('C:\specs\github\api.github.com.json');
    Memo1.Lines.Add(Format('GitHub spec: %d paths, %d schemas',
      [vParser.Paths.Count, vParser.Schemas.Count]));

    vGen := TsgcOpenAPIGenerator.Create(nil);
    try
      vGen.Parser := vParser;
      vGen.OutputUnit := 'sgcOpenAPI_GitHub';
      vGen.OutputFolder := 'C:\Generated\GitHub';
      vGen.GroupBy := gbTag;        // one class per tag
      vGen.Generate;
    finally
      vGen.Free;
    end;
  finally
    vParser.Free;
  end;
end;
uses
  sgcOpenAPI_PetStore;  // Generated from petstore.yaml

procedure TForm1.btnGetPetClick(Sender: TObject);
var
  Client: TsgcOpenAPI_PetStoreClient;
  Pet: TsgcOpenAPI_Pet;
begin
  Client := TsgcOpenAPI_PetStoreClient.Create(nil);
  try
    Client.BaseURL := 'https://petstore.swagger.io/v2';
    Client.ApiKey  := 'your-api-key';

    // Type-safe API call with IntelliSense
    Pet := Client.GetPetById(42);
    try
      Memo1.Lines.Add('Name: '     + Pet.Name);
      Memo1.Lines.Add('Status: '   + Pet.Status);
      Memo1.Lines.Add('Category: ' + Pet.Category.Name);
    finally
      Pet.Free;
    end;
  finally
    Client.Free;
  end;
end;

O analisador e o gerador são componentes separados, então você também pode percorrer o modelo analisado por conta própria e construir a sua própria ferramenta em cima dele. O componente analisador →

Sirva a especificação, não apenas a consuma

O TsgcOpenAPIServer publica um documento OpenAPI 3.x vivo, roteia as requisições recebidas conforme a especificação, valida os payloads nas duas direções e traz Swagger UI e Redoc embutidos, tudo a partir de um único componente Delphi sobre o servidor HTTP/2 do sgcWebSockets.

OpenAPIServer.pas
uses
  sgcOpenAPI_Server, sgcOpenAPI_Types, sgcHTTP_Server;

procedure TForm1.FormCreate(Sender: TObject);
begin
  FServer := TsgcOpenAPIServer.Create(nil);
  FServer.HTTPServer := sgcHTTPServer1;
  FServer.Spec.LoadFromFile('petstore.yaml');
  FServer.PublishSpecPath := '/openapi.json';
  FServer.SwaggerUIPath   := '/docs';
  FServer.RedocPath       := '/redoc';

  // Bind an operation declared in the spec
  FServer.OnOperation_getPetById :=
    procedure(const Ctx: TsgcOpenAPIContext)
    var
      oPet: TJSONObject;
    begin
      oPet := TJSONObject.Create;
      oPet.AddPair('id',     Ctx.PathParams['petId']);
      oPet.AddPair('name',   'Rex');
      oPet.AddPair('status', 'available');
      Ctx.RespondJSON(200, oPet);
    end;

  sgcHTTPServer1.Port   := 8080;
  sgcHTTPServer1.Active := True;
end;

O que isso te dá

O GET /pets/{petId} executa o manipulador acima. O GET /openapi.json devolve o documento vivo. O GET /docs abre o Swagger UI e o GET /redoc abre o Redoc. HTTP/2 e TLS já estão ativos se o servidor HTTP estiver configurado com eles.

Especificação primeiro ou código primeiro

Carregue um contrato YAML ou JSON e vincule os manipuladores aos IDs de operação, ou registre os manipuladores em Pascal e deixe o componente montar o documento OpenAPI em tempo de execução.

Validação nas duas direções

Campos obrigatórios, coerção de tipos, pertencimento a enum, validadores de formato, limites de comprimento e de faixa, padrões e composição de schemas são todos aplicados antes de o manipulador rodar. As falhas voltam como problem details RFC 7807, com diagnóstico por campo.

Autenticação ligada a partir da especificação

Cada securityScheme do documento é aplicado automaticamente. Você escreve a busca da credencial, o componente faz a análise, os cabeçalhos de desafio e as respostas 401 e 403.

API Key HTTP Basic Bearer JWT OAuth2 OpenID Connect mTLS Swagger UI + Redoc

O componente servidor OpenAPI →

O servidor roda no mesmo servidor HTTP do sgcWebSockets que hospeda os seus endpoints WebSocket e os seus arquivos estáticos. Uma porta, um certificado TLS, um fluxo de log.

Seis bibliotecas, uma caixa de ferramentas

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

sgcOpenAPI

Analisador OpenAPI 3.x, gerador nativo de SDK Pascal, componente servidor OpenAPI e mais de 1.195 SDKs pré-compilados para AWS, Azure, Google Cloud e Microsoft Graph.

Saiba mais →

sgcWebSockets

WebSocket, HTTP/2, HTTP/3, MQTT, AMQP, WebRTC, IA e 30+ integrações de API. O servidor HTTP sobre o qual o componente servidor OpenAPI roda.

Saiba mais →

sgcHTML

Componentes HTML e de UI server-side sobre Bootstrap 5 e htmx. Construa a UI de administração ou o painel para os clientes REST que você gera, sem um front end JavaScript.

Saiba mais →

sgcSign

XAdES, PAdES, CAdES e ASiC para documentos, Authenticode, ClickOnce, NuGet e VSIX para código. Assine os corpos de requisição e resposta que a sua API troca.

Saiba mais →

sgcBiometrics

Windows Hello, sensores de impressão digital e o Windows Biometric Framework para Delphi e C++ Builder. Proteja o acesso à API com uma impressão digital.

Saiba mais →

sgcIndy

Componentes Indy TCP/IP atualizados com TLS moderno, IPv6 e HTTP/2, do Delphi 7 ao 13. A camada de transporte por baixo dos clientes gerados.

Saiba mais →

Ver preços e edições 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 OpenAPI da eSeGeCe.

Mostre outro ângulo →
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

Gere o seu primeiro SDK Pascal hoje

Analisador, gerador de código, componente servidor OpenAPI e todos os mais de 1.195 SDKs de nuvem pré-compilados, em uma única licença. Código-fonte completo, implantação sem royalties, do Delphi 7 ao RAD Studio 13.