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 →
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.
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.
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.
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.
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 →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 →Compute Engine, Cloud Storage, BigQuery, Pub/Sub, Cloud Functions e mais.
Ver SDKs do Google →Office 365, Microsoft Teams, OneDrive, Outlook e Active Directory, através da Graph API.
Ver SDKs da Microsoft →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:
Cinco passos, todos dentro da IDE. Sem Node.js, sem gerador de código em Java, sem template engine para aprender.
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.
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.
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.
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.
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 →
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.
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 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.
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.
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.
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.
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.
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.
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 →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 →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 →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 →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 →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 →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!
O sgcWebSockets é incrível e o suporte de vocês é o melhor!
Muito obrigado pela ajuda e pelo suporte, eu adoro os componentes de vocês.