eSeGeCe — 面向 Delphi 和 .NET 的企业级通信组件
精选 · sgcOpenAPI

别再手写 REST 客户端

把 sgcOpenAPI 指向一份 OpenAPI 3.x 文档。解析器读取它,生成器输出一个原生的 Object Pascal SDK,OpenAPI 服务器组件则把您自己的端点重新发布为一份实时规范。您也可以完全跳过生成这一步,因为面向 AWS、Azure、Google Cloud 和 Microsoft Graph 的 1,195+ 个 SDK 已经构建完成并随产品附带。

  • OpenAPI 3.0 和 3.1
  • JSON 和 YAML
  • Swagger 2.0 自动转换
  • Delphi 7 到 RAD Studio 13

您需要的 SDK 很可能已经写好了

sgcOpenAPI 的每个等级,Single、Team 和 Site,都包含解析器、代码生成器、OpenAPI 服务器组件以及整个预构建 SDK 库。没有任何一项需要单独购买。

1,195+ 预构建云 SDK 由官方 OpenAPI 规范生成,并定期更新。
280+ Amazon AWS 服务 REST 服务 SDK,涵盖 S3、EC2、Lambda、DynamoDB、SQS、SNS、CloudFormation 等。
650+ Microsoft Azure 服务 Azure 虚拟机、Blob Storage、Functions、Cosmos DB、Key Vault 等。
250+ Google Cloud 服务 Compute Engine、Cloud Storage、BigQuery、Pub/Sub、Cloud Functions 等。
15+ Microsoft Graph SDK Office 365、Microsoft Teams、OneDrive、Outlook 和 Active Directory。
sgcOpenAPI

面向 Delphi 和 C++ Builder 的一个套装产品:OpenAPI 3.x 解析器、原生 Pascal SDK 生成器、OpenAPI 服务器组件,以及 1,195+ 预构建云 SDK。完整源代码,免版税部署。

四大云平台,已经是 Pascal

开始使用之前,您不需要生成任何东西。四大云平台以开箱即用的 Pascal SDK 形式随 sgcOpenAPI 一起提供,它们由官方规范生成,并保持更新。

280+ 项服务

Amazon AWS

REST 服务 SDK,涵盖 S3、EC2、Lambda、DynamoDB、SQS、SNS、CloudFormation 等。把单元加入项目,就能用类型化的请求和响应类调用服务。

查看 AWS SDK →
650+ 项服务

Microsoft Azure

库中最大的一组。Azure 虚拟机、Blob Storage、Functions、Cosmos DB、Key Vault 以及 Azure 控制平面的其余部分,每一项都是一个生成好的 Pascal 客户端。

查看 Azure SDK →
250+ 项服务

Google Cloud

Compute Engine、Cloud Storage、BigQuery、Pub/Sub、Cloud Functions 等。

查看 Google SDK →
15+ 个 SDK

Microsoft Graph

通过 Graph API 访问 Office 365、Microsoft Teams、OneDrive、Outlook 和 Active Directory。

查看 Microsoft SDK →
其他所有规范

任何其他规范

只要该 API 发布了 OpenAPI 或 Swagger 文档,生成器就能把它变成同样类型化的 Pascal 单元。没有白名单限制。

生成器功能 →

实战指南,从一份公开规范到一个可编译的 Delphi 客户端:

规范进来,可编译的代码出去

五个步骤,全部在 IDE 内完成。不需要 Node.js,不需要 Java 代码生成器,也不需要学习任何模板引擎。

  1. 1 指向一份规范

    从文件、URL 或字符串加载一份 OpenAPI 3.x 文档,JSON 或 YAML 均可。Swagger 1.x 和 2.x 文件会被自动识别,并转换为 OpenAPI 3.x 模型。

  2. 2 解析

    TsgcOpenAPIParser 解析 $ref 指针,包括外部文件和循环引用,展平 allOfoneOfanyOf,并以行级细节报告结构错误。

  3. 3 生成

    TsgcOpenAPIGenerator 输出强类型的 Pascal 类、记录和枚举,按 tag 每个一类分组,并在代码旁附带 PDF 和 CHM 文档。

  4. 4 编译

    把生成的单元加入项目。除了 sgcOpenAPI 运行时之外没有任何外部依赖,可用于 Delphi 7 到 RAD Studio 13,以及 C++ Builder 2007 到 13。

  5. 5 调用

    设置 BaseURL,设置凭据,然后调用操作。类型安全的方法、类型化的结果,以及 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;

解析器和生成器是两个独立的组件,因此您也可以自己遍历解析后的模型,在它之上构建属于自己的工具。解析器组件 →

提供规范,而不只是消费规范

TsgcOpenAPIServer 发布一份实时的 OpenAPI 3.x 文档,按规范路由传入的请求,对双向的负载进行校验,并内置 Swagger UI 和 Redoc,这一切都由一个 Delphi 组件完成,运行在 sgcWebSockets 的 HTTP/2 服务器之上。

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;

这样您就得到了

GET /pets/{petId} 会运行上面的处理程序。GET /openapi.json 返回这份实时文档。GET /docs 打开 Swagger UI,GET /redoc 打开 Redoc。如果 HTTP 服务器已经配置好,HTTP/2 和 TLS 也已经启用。

Spec-first 或 Code-first

加载一份 YAML 或 JSON 契约,把处理程序绑定到 operation ID;或者在 Pascal 中注册处理程序,让组件在运行时构建出 OpenAPI 文档。

双向校验

必填字段、类型转换、枚举成员、格式校验器、长度和范围限制、正则模式以及 schema 组合,全部在处理程序运行之前完成校验。失败会以 RFC 7807 problem details 的形式返回,并附带字段级诊断信息。

从规范接好身份验证

文档中的每一个 securityScheme 都会被自动强制执行。您只需编写凭据查找逻辑,解析、质询头以及 401 和 403 响应都由组件完成。

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

OpenAPI 服务器组件 →

该服务器运行在承载您 WebSocket 端点和静态文件的同一个 sgcWebSockets HTTP 服务器上。一个端口,一份 TLS 证书,一条日志流。

六个组件库,一个工具箱

sgcOpenAPI 是 eSeGeCe 面向 Delphi、C++ Builder 和 .NET 的六个组件库之一。它们共享同样的约定,提供完整源代码,并可免版税部署。

sgcOpenAPI

OpenAPI 3.x 解析器、原生 Pascal SDK 生成器、OpenAPI 服务器组件,以及面向 AWS、Azure、Google Cloud 和 Microsoft Graph 的 1,195+ 预构建 SDK。

了解更多 →

sgcWebSockets

WebSocket、HTTP/2、HTTP/3、MQTT、AMQP、WebRTC、AI 及 30+ API 集成。OpenAPI 服务器组件所运行的 HTTP 服务器正来自于此。

了解更多 →

sgcHTML

基于 Bootstrap 5 和 htmx 的服务器端 HTML 和界面组件。为您生成的 REST 客户端构建管理或仪表板界面,无需 JavaScript 前端。

了解更多 →

sgcSign

文档使用 XAdES、PAdES、CAdES 和 ASiC,代码使用 Authenticode、ClickOnce、NuGet 和 VSIX。为您的 API 往来的请求和响应正文签名。

了解更多 →

sgcBiometrics

面向 Delphi 和 C++ Builder 的 Windows Hello、指纹传感器和 Windows 生物特征框架。用指纹为 API 访问加一道关卡。

了解更多 →

sgcIndy

更新后的 Indy TCP/IP 组件,为 Delphi 7 到 13 提供现代 TLS、IPv6 和 HTTP/2。生成的客户端之下的传输层。

了解更多 →

查看价格和版本 下载免费试用版

开发者怎么说

受到全球各地 Delphi、C++ Builder、Lazarus 和 .NET 开发者的信赖。

你们的 sgcWebSockets 库非常实用,而且易于设置。请继续保持!

Simone Moretti Delphi 开发者

sgcWebSockets 非常出色,你们的支持也是最棒的!

Christian Meyer 创始人兼首席技术官

非常感谢你们的帮助和支持,我很喜欢你们的组件。

Mark Steinfeld 首席技术官

您正在浏览 eSeGeCe 的 OpenAPI 视角。

换个角度看看 →
30 天退款保证不满意?可在购买后 30 天内申请全额退款。 查看退款政策

今天就生成您的第一个 Pascal SDK

解析器、代码生成器、OpenAPI 服务器组件,以及全部 1,195+ 预构建云 SDK,只需一份许可证。完整源代码,免版税部署,支持 Delphi 7 到 RAD Studio 13。