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

根据 OpenAPI 契约构建 REST API,原生运行于 Delphi

三个组件,涵盖两大类任务。TsgcHTTPRESTServer 是一个 REST 服务器,内置 CORS、可选的 /metrics/health 端点,以及多租户请求解析。TsgcWSAPIServer_OpenAPILoadFromFile 加载 OpenAPI 3.x 契约,并对照它分发、校验和验证每一个请求。TsgcOpenAPI_Client 是任意以 OpenAPI 描述的 API 所对应的带类型客户端背后的基类。sgcREST 是独立产品,已内置 sgcWebSockets Core 运行时。

  • 3 个组件类
  • REST 服务器 · OpenAPI 服务器 · OpenAPI 客户端
  • CORS、/metrics、/health、多租户
  • Delphi 7 到 13 · C++ Builder

两个面板组件,一个客户端基类

sgcREST 是一个独立软件包。它内置其所基于的 sgcWebSockets Core 运行时,每份许可证都附带完整源代码,因此 REST 分发和 OpenAPI 校验都可以在您自己的调试器中单步跟踪。

2 面板组件 SGC REST 面板页上的 TsgcHTTPRESTServer,SGC OpenAPI 面板页上的 TsgcWSAPIServer_OpenAPI
3 组件类总数 REST 服务器、OpenAPI 服务器和 OpenAPI 客户端基类。
2 内置端点 /metrics/health,可选开启,服务于服务器已有的任何 Authentication 之后。
1 独立安装程序 sgcWebSockets Core 运行时和 HTTP/TLS 层全部内置在这一个软件包中。
100% 包含源代码 每份许可证都附带全部三个组件及所内置运行时的完整源代码。
sgcREST

面向 Delphi 和 C++ Builder 的 REST 服务器与 OpenAPI 服务器/客户端组件。独立软件包,内置 sgcWebSockets Core 运行时,提供完整源代码,并可免版税部署。

发布一个 API,或调用一个 API

这三个类按方向清晰地划分开来。REST 服务器和 OpenAPI 服务器发布调用方所访问的端点。OpenAPI 客户端基类则是生成的 SDK 用来调用别人端点的基础。

REST 服务器

内置 CORS、指标、健康检查与多租户

TsgcHTTPRESTServer 在 sgcWebSockets HTTP 服务器基础上,扩展了 REST API 日常所需的基础设施:面向跨域请求的 CORSOptions,通过 ServerStats 提供的可选 /metrics/health 端点,以及通过 Tenancy 实现的多租户请求解析,可按主机、路径、请求头或 JWT 声明解析。Tenant 将解析结果暴露给您自己的请求处理程序。

查看 REST 服务器 →
OpenAPI 服务器

加载一份契约,分发并校验每一个请求

TsgcWSAPIServer_OpenAPILoadFromFileLoadFromString 读取一份 OpenAPI 3.x 文档,并将其变成一个实时分发器:每个到达的请求都会与契约进行匹配,并按操作 id 路由到您的 OnRequest 处理程序。OnValidationErrorOnAuthenticateOnValidateAPIKeyOnValidateBasicOnValidateBearer 覆盖规范声明的各种安全方案,OnBeforeRequest/OnAfterRequest 则包裹每一次调用。

查看 OpenAPI 服务器 →
OpenAPI 客户端

每个生成的 SDK 背后都是同一个基类

TsgcOpenAPI_Client 是面向任何 OpenAPI 描述 API 的通用运行时客户端:Authentication 涵盖 Basic 身份验证、Bearer 令牌、通用 OAuth2 和 JWT,HTTP_REQUESTHTTP_REQUEST_Async 负责执行调用。将 SetBaseURL 指向您加载或自行生成的契约,即可立即调用。

查看它能做什么 →
逃生舱

规范需要的每一个回调

OnException 会在处理程序错误抵达线路之前将其捕获,校验和身份验证事件都会收到解析后的 TsgcOpenAPIServerContext,带有 PathParamsQueryParamsRespondJSON,因此一次调用被接受或拒绝的原因,没有任何一环对您隐藏。

校验能力全貌 →
跨平台

五个平台,一个运行时

REST 服务器和 OpenAPI 服务器都是 TsgcHTTPServer 的派生类,OpenAPI 客户端则运行在与 Core 运行时其余部分相同的 HTTPS 技术栈之上。从 Delphi 7 到 RAD Studio 13,以及 C++ Builder。

功能矩阵 →

每个组件的参考页面:

发布一个端点,或发布一份契约

REST 服务器会将请求直接交给您。OpenAPI 服务器则会交给您一个已经校验、已经匹配好的操作。两者在 Delphi 7 到 13 以及 C++ Builder 中编译方式相同。

uses
  sgcHTTP_REST_Server, sgcHTTP_REST_Server_Stats;
var
  RESTServer: TsgcHTTPRESTServer;
  Stats: TsgcHTTPServerStats;
begin
  // REST 服务器:一个组件即涵盖 CORS、健康检查/指标与多租户
  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
  // OpenAPI 服务器:加载契约,按操作 id 分发
  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;

在 Object Pascal 和 C++ Builder 中是同一种形态。完整功能矩阵 →

两件值得先了解的事

sgcREST 需要您准备什么,以及不需要什么。两个答案都很简短,而且都写在这个页面上,而不是藏在小字条款里。

三个组件,两项任务
组件                                 角色
TsgcHTTPRESTServer                  发布一个 REST API:CORS、
                                       /metrics、/health、多租户
TsgcWSAPIServer_OpenAPI             根据 OpenAPI 3.x 契约
                                       发布一个 REST API
TsgcOpenAPI_Client                  调用任意以 OpenAPI 描述的 API

两个服务器组件都是 TsgcHTTPServer 的派生类,
  因此它们接入的 Port、TLSOptions 和
  Authentication,与您其他 sgcWebSockets
  服务器已经在用的完全相同。

sgcREST 是独立产品

作为独立产品,已内置 sgcWebSockets Core 运行时:REST 服务器和 OpenAPI 服务器都运行于其上的 HTTP/TLS 服务器技术栈,以及 OpenAPI 客户端用来解码响应的 JSON 层。一个安装程序,开箱即含完整源代码。

REST 服务器和 OpenAPI 服务器共用一个基础

TsgcHTTPRESTServerOpenAPI 服务器所挂接的 HTTP 服务器都是 TsgcHTTPServer 的派生类,因此无论由哪一个发布您的 API,CORS、TLS、Authentication 和请求处理流程的表现都是一致的。

OpenAPI 客户端只需要一份契约

TsgcOpenAPI_Client 直接根据 OpenAPI 文档解析路径、请求头和身份验证方式,运行在 Core 运行时的纯 HTTPS 技术栈之上。

Delphi 和 C++ Builder

sgcREST 面向 Delphi 7 到 RAD Studio 13 以及 C++ Builder。REST 服务器也内置于 sgcWebSockets Professional 及以上版本中,OpenAPI 服务器和客户端也随现有的 sgcOpenAPI 套件一同提供,因此您现有的许可证可能已经覆盖了它们。免费试用版安装程序就是 sgcWebSockets All-Access 试用版,因此今天就可以评估全部三个类。

OpenAPI 3.x CORS 多租户 /metrics 与 /health 完整源代码

每个组件和属性 →

sgcREST 实现的是您的契约所描述的 REST 和 OpenAPI 接口,而不是对某个您无法掌控的代码生成器的封装,因此请求、校验和分发都是一等的方法和事件,完整源代码意味着中间没有任何一环是黑盒。

十三个组件库,一个工具箱

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

sgcREST

面向 Delphi 和 C++ Builder 的 REST 服务器、OpenAPI 服务器和 OpenAPI 客户端组件。独立产品,随附 sgcWebSockets Core 运行时。

了解更多 →

sgcHTTP

面向 Delphi 和 C++ Builder 的 HTTP/2 客户端、gRPC 客户端以及 Google Cloud Pub/Sub、Calendar 和 FCM 客户端。独立产品,随附 sgcWebSockets Core 运行时。

了解更多 →

sgcAuth

面向 Delphi 和 C++ Builder 的 OAuth2 客户端、JWT 客户端和 WebAuthn 支持。独立产品,随附 sgcWebSockets Core 运行时。

了解更多 →

sgcWebSockets

面向 Delphi、C++ Builder、Lazarus 和 .NET 的 WebSocket、HTTP/2、MQTT、AMQP、WebRTC、AI 及 30+ API 集成。它的 Enterprise 版本也包含 gRPC。

了解更多 →

sgcMQ

面向 Delphi 和 C++ Builder 的 MQTT、AMQP 0.9.1 和 1.0、Apache Kafka 与 STOMP 客户端组件。独立产品,随附 sgcWebSockets Core 运行时。

了解更多 →

sgcSocial

面向 Delphi 和 C++ Builder 的 Telegram 和 WhatsApp Business 客户端组件。独立产品,随附 sgcWebSockets Core 运行时。

了解更多 →

sgcHTML

面向 Delphi、C++ Builder 和 .NET 的服务器端 HTML 和界面组件,基于 Bootstrap 5 和 htmx。

了解更多 →

sgcQUIC

原始 QUIC 传输,以及 HTTP/3 客户端和服务器,并支持 WebTransport。作为 sgcWebSockets Enterprise 的附加组件。

了解更多 →

sgcAI

面向 Delphi 和 C++ Builder 的 AI、LLM 和 MCP 组件。一个组件即可对接七家 LLM 提供商,另有 MCP、嵌入和语音。独立产品,随附 sgcWebSockets Core 运行时。

了解更多 →

sgcOpenAPI

OpenAPI 3.x 解析器、原生 Pascal SDK 生成器、OpenAPI 服务器组件,以及 1,195+ 预构建云 SDK。

了解更多 →

sgcSign

文档使用 XAdES、PAdES、CAdES 和 ASiC,代码使用 Authenticode、ClickOnce、NuGet 和 VSIX。

了解更多 →

sgcBiometrics

面向 Delphi 和 C++ Builder 的 Windows Hello、指纹传感器和 Windows 生物特征框架。

了解更多 →

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 的 REST 与 OpenAPI 视角。

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

REST API、OpenAPI 契约,原生构建于原生代码之中

一个 REST 服务器、一个 OpenAPI 服务器和一个 OpenAPI 客户端,内置 sgcWebSockets Core 运行时,开箱即含完整源代码。