sgcREST REST API を、 Delphi にネイティブ。 OpenAPI も標準搭載。

2 つの役割、7 つのクラス。 TsgcHTTPRESTServer は、CORS、 /metrics と /health、マルチテナンシー、ユーザーストアを備えた REST API を公開します。OpenAPI エンジンは OpenAPI 3.x の契約からそのまま API を提供し、Delphi のクラスから契約を生成することもできます。そして TsgcOpenAPI_Client は、OpenAPI で記述された任意の API を利用します。sgcWebSockets Core ランタイムが含まれます。

数行で最初のエンドポイントを公開 →
  • Delphi 7~13
  • C++ Builder
  • OpenAPI 3.x
  • CORS
  • /metrics と /health
  • マルチテナント対応
  • 完全なソースコード
  • 4パレットのコンポーネント: REST サーバー、統計、テナンシー、ユーザー
  • 7クラスの合計: REST サーバーファミリー、OpenAPI エンジン、クライアント
  • 4クライアントの認証方式: Basic、ベアラートークン、OAuth2、JWT
  • 2組み込みエンドポイント: /metrics と /health(どちらも任意で有効化)
  • 100%すべてのライセンスにソースコードが含まれます
動作を見る

2 分でわかる sgcREST。

ナレーションと字幕付きの REST サーバー解説: おなじみの HTTP サーバーに、REST API が最終的に必ず必要とする 4 つの機能を加えます。再生ボタンを押すまで何もダウンロードされません。

sgcREST クイックスタート

Delphi で CORS、リアルタイム統計、テナンシー、ユーザーを備えた REST API サーバーを構築します。

  1. すべてを継承TsgcHTTPRESTServer は TsgcHTTPServer の派生クラスです。Port、TLS、Authentication、セッション、圧縮、スレッドプール、ファイアウォール、レートリミッターをそのまま引き継ぎます。
  2. すべて任意で有効化CORS は既定でオフ、ServerStats と Tenancy は未割り当てです。アップグレード後に勝手に有効になるものはありません。
  3. CORS許可するオリジン、メソッド、ヘッダーを列挙すれば、OPTIONS プリフライトにはサーバーが応答します。
  4. メトリクスとヘルスチェックTsgcHTTPServerStats を割り当てるだけで /metrics と /health が使えます。どちらもサーバーの認証ゲートの内側にあります。
  5. マルチテナント対応すべてのリクエストは、ホスト、パス、ヘッダー、または JWT クレームからテナントに対応付けられます。ハンドラーは Tenant を読むだけです。
  6. すぐに使えるユーザーストアアカウント、ソルト付きパスワードハッシュ、ロールを管理します。組み込みの Basic ゲートは、すべての資格情報をこのストアで照合します。
同梱内容

4 つのパレットコンポーネントと、3 つのコード専用クラス。

REST サーバーと 3 つのコンパニオンは、SGC REST パレットページにある非ビジュアルコンポーネントです。OpenAPI サーバーエンジンと OpenAPI クライアントは、 sgcHTTP_OpenAPI_* ユニットに含まれています。インスタンスを作成して設定し、メソッドを直接呼び出します。

REST サーバー · 1 つのサーバー、3 つのコンパニオン

詳しく見る →
  • TsgcHTTPRESTServer
  • TsgcHTTPServerStats
  • TsgcHTTPServer_Tenancy
  • TsgcHTTPServer_Users
  • CORSOptions
  • ServerStats
  • Tenancy
  • Tenant

TsgcHTTPRESTServer は標準の TsgcHTTPServer を拡張し、 CORSOptionsによる CORS 処理と、任意のコンパニオン用の 2 つのプロパティを追加します。 TsgcHTTPServerStats は、すべてのリクエストをステータスクラスごとに集計し、レイテンシの最小値、平均値、最大値を記録して、Prometheus 形式の /metrics エンドポイントと JSON 形式の /health エンドポイントを提供します。ルートごとの内訳は GetEndpointStats で取得できます。 TsgcHTTPServer_Tenancy は、ホスト名、パスのセグメント、リクエストヘッダー、または JWT クレームから呼び出し元のテナントを解決し、 Tenant が処理中のリクエストに対する結果を読み取ります。 TsgcHTTPServer_Users は、アカウント、ソルト付きパスワードハッシュ、ロールを保持する独立したストアです。

OpenAPI サーバー · スペックファーストまたはコードファースト

詳しく見る →
  • TsgcOpenAPIRouteTable
  • TsgcOpenAPIServerContext
  • TsgcOpenAPIServerHandler
  • TsgcOpenAPIJSONValidator
  • TsgcOpenAPICodeFirstScanner
  • RespondJSON

OpenAPI 3.0 または 3.1 のドキュメントを読み込むと、paths セクションからルートテーブルが構築されます。一致したリクエストは TsgcOpenAPIServerContextとして届き、型付きのパスパラメーターとクエリパラメーター、本文ヘルパー、 RespondJSON/RespondErrorが利用できます。バリデーターは、仕様が宣言する JSON スキーマに照らして本文、クエリ、パスパラメーターを検証します。コードファーストでは信頼できる情報源が逆転します。通常の Delphi クラスに属性を付けるだけで、スキャナーが仕様を生成します。

OpenAPI クライアント · 記述された任意の API

詳しく見る →
  • TsgcOpenAPI_Client
  • SetBaseURL
  • HTTP_REQUEST
  • HTTP_REQUEST_Async
  • Authentication
  • OnBeforeRequest
  • OnUpload
  • OnDownload

OpenAPI ドキュメントが記述する任意のエンドポイントに対応する汎用のランタイムクライアントで、生成される SDK の基底クラスでもあります。 Authentication は Basic 認証とベアラートークンに加え、汎用の OAuth2 と JWT に対応し、 HTTP_REQUEST が呼び出しを担い、 OnBeforeRequest、 OnUpload と OnDownload が進行を追跡します。

すべてのコンポーネントとプロパティを見る

仕組み

1 つのサーバーと、組み合わせ可能なコンパニオン。

7 つのクラスは役割ごとにすっきりと分かれています。REST サーバーが HTTP トラフィックを担い、3 つのコンパニオンが本番の API に必要な機能を追加し、OpenAPI エンジンが手書きまたは生成された仕様を動作するルートテーブルに変換します。

機能を追加した TsgcHTTPServer

TsgcHTTPRESTServer は、すべての sgcWebSockets エディションに含まれる通常の HTTP サーバーのバインディング、TLS、HTTP/2 処理を引き継ぎ、CORS とコンパニオン用プロパティを追加します。そのため、別のフレームワークなしで REST API にメトリクス、ヘルスチェック、マルチテナンシーを持たせられます。

組み込みではなくコンパニオン

統計、テナンシー、ユーザーは別々のコンポーネントです。API に必要なものだけを接続し、残りは省略できます。接続しただけで未設定のコンパニオンは、サーバーにとって確認のコストがかかりません。

スペックファーストもコードファーストも、1 つのルートテーブル

OpenAPI ドキュメントが読み込んだファイルに由来するか、属性付きクラスを TsgcOpenAPICodeFirstScanner.GenerateSpec でスキャンして得たものかに関わらず、同じルートテーブルとリクエストコンテキストがどちらにも対応します。

仕様に必要なすべてのコールバック

検証イベントと認証イベントは、解析済みの TsgcOpenAPIServerContext、 PathParams、 QueryParams と RespondJSONを受け取ります。 OnException は、ハンドラーのエラーがネットワークに出る前に捕捉するため、呼び出しが受理または拒否された理由が隠れることはありません。

6 つのプラットフォーム、アドオン不要

7 つのクラスはすべて RAD Studio に付属する標準の Indy ライブラリ上で動作します。対象は Windows の Win32 と Win64、Linux64、macOS、iOS、Android です。Delphi 7 から RAD Studio 13、および C++ Builder で利用できます。

Core ランタイムも同梱

sgcWebSockets Core ランタイムは、REST サーバーとすべての OpenAPI クラスが動作する HTTP/TLS スタックと、すべてのリクエストとレスポンスをシリアライズする JSON レイヤーを提供します。そのソースコードもほかと同様にパッケージに含まれます。

クイックスタート

エンドポイントを公開し、契約を公開し、あるいは呼び出す。

REST サーバーはリクエストをそのまま渡します。OpenAPI サーバーは検証済みで照合済みの操作を渡します。OpenAPI クライアントは他者のエンドポイントを呼び出します。3 つとも Delphi 7~13 と C++ Builder で同じようにコンパイルできます。

uses
  sgcHTTP_REST_Server, sgcHTTP_REST_Server_Stats;
var
  RESTServer: TsgcHTTPRESTServer;
  Stats: TsgcHTTPServerStats;
begin
  // REST server: CORS, health/metrics and tenancy in one component
  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 server: load the contract, dispatch by operation id
  OpenAPIServer := TsgcWSAPIServer_OpenAPI.Create(nil);
  OpenAPIServer.Server := sgcHTTPServer1;
  OpenAPIServer.LoadFromFile('petstore.json');
  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;
uses
  sgcHTTP_OpenAPI_Client;
var
  APIClient: TsgcOpenAPI_Client;
  Request: TsgcOpenAPIRequest;
  Response: TsgcOpenAPIResponse;
begin
  // OpenAPI client: call any OpenAPI-described API with basic auth
  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;
  1. CORS に自動で応答CORSOptions を有効にし、許可するオリジン、メソッド、ヘッダーを列挙すれば、OPTIONS プリフライトにはサーバーが応答します。ハンドラーにも、DocumentRoot から配信されるファイルにも適用されます。
  2. 1 回の割り当てで統計TsgcHTTPServerStats を ServerStats に割り当てると /metrics と /health が使えます。未割り当てのままなら、カウンターはまったく保持されません。
  3. コードの実行前にテナンシーTsgcHTTPServer_Tenancy を割り当てると、すべてのリクエストが最初にテナントへ対応付けられます。ハンドラーは Tenant を読むだけです。
  4. ハンドラー不要のユーザー管理TsgcHTTPServer_Users を Authentication.Users に割り当てると、組み込みの Basic ゲートがすべての資格情報を自動で解決します。
sgcREST クイックスタート: TsgcHTTPServerStats が Metrics と Health のエンドポイントを有効にし、GET /metrics がリクエストカウンターを、GET /health が JSON 形式のステータスを返します。
設定は 3 行だけ。あとは GET /metrics と GET /health が自動で応答します。

機能マトリックス全体

購入前に

最初に知っておきたいことが 2 つあります。

sgcREST が求めるもの、そして求めないものです。どちらの答えも短く、細かい注記の中ではなく、このページに書いてあります。

publish a REST API
TsgcHTTPRESTServer        CORS, ServerStats, Tenancy
TsgcHTTPServerStats       /metrics and /health
TsgcHTTPServer_Tenancy    host, path, header, JWT claim
TsgcHTTPServer_Users      accounts, hashes, roles

publish from an OpenAPI 3.x contract
route table + context     spec-first, Delphi 7 to 13
code-first scanner        attributed class, XE7 and up

consume an API
TsgcOpenAPI_Client        any OpenAPI-described API

TsgcHTTPRESTServer is a TsgcHTTPServer
  descendant, so it publishes from the Port,
  TLS and Authentication you already use.

sgcREST は単体で完結

単体製品で、sgcWebSockets Core ランタイムが含まれます。REST サーバーとすべての OpenAPI クラスが動作する HTTP/TLS のサーバーおよびクライアントスタックと、すべてのリクエストとレスポンスをシリアライズする JSON レイヤーです。インストーラーは 1 つで、sgcREST は RAD Studio に付属する標準の Indy ライブラリ上で動作します。

コードファーストの OpenAPI には Delphi XE7 以降が必要

属性付きの Delphi クラスから仕様を生成する機能は、Delphi XE7 で登場した RTTI に依存するため、 TsgcOpenAPICodeFirstScanner と TsgcOpenAPICodeFirstDispatcher は XE7 以降でコンパイルできます。REST サーバー、そのコンパニオン、スペックファーストのエンジンは、サポートされるすべてのコンパイラー(Delphi 7~13)で動作します。

中身がブラックボックスになることはありません

sgcREST は、制御できないコードジェネレーターをラップするのではなく、契約が記述する REST と OpenAPI の仕様そのものを実装しています。リクエスト、検証、ディスパッチはすべて第一級のメソッドとイベントであり、すべてのライセンスに完全なソースコードが付属するため、自分のデバッガですべてをステップ実行できます。

sgcWebSockets の一部

sgcWebSockets の 1 つのパッケージで、単独でライセンスされます。

sgcREST は、sgcWebSockets の REST と OpenAPI のクラスを 1 つのパッケージにまとめたものです。すべてのライセンスに、7 つのクラスすべて、sgcWebSockets Core ランタイム、完全なソースコード、ロイヤリティフリーの再配布、1 年間のアップデートが含まれます。

Single

開発者ライセンス 1 つ。一度に 1 台のマシンで使用できます。

€249

Team

開発者ライセンス 2 つ。一度に 2 台のマシンで使用できます。

€399

Site

開発者数無制限。会社のすべてのマシンで使用できます。

€649

更新は 50% から 70% の割引で提供されます。すでに sgcWebSockets をお使いですか?REST サーバーは Professional 以上に、OpenAPI サーバーは Enterprise エディションにも含まれているため、お使いのエディションですでにカバーされている場合があります。また、 All-Access バンドル にはすべてが含まれます。体験版インストーラーは sgcWebSockets All-Access の体験版なので、7 つのクラスすべてを今すぐ評価できます。

価格を見て注文する
お客様の声

開発者の声

世界中の Delphi、C++ Builder、Lazarus、.NET 開発者から信頼されています。

sgcWebSockets ライブラリはとても便利でセットアップも簡単です。これからも頑張ってください!
Simone Moretti Delphi 開発者
sgcWebSockets は素晴らしく、サポートも最高です!
Christian Meyer 創業者 & CTO
ご支援とサポートに本当に感謝しています。コンポーネントが大好きです。
Mark Steinfeld CTO

REST API、OpenAPI の契約、ネイティブコード。

CORS、統計、テナンシー、ユーザーを備えた REST サーバー、スペックファーストでもコードファーストでも動作する OpenAPI サーバー、記述された任意の API 用の OpenAPI クライアント。sgcWebSockets Core ランタイムを同梱し、完全なソースコードも付属します。

eSeGeCe のその他の製品

eSeGeCe のその他の製品

sgcREST は、Delphi、C++ Builder、.NET 向けの eSeGeCe コンポーネントライブラリの 1 つです。規約を共有し、完全なソースコード付きで、配布はロイヤリティフリーです。

sgcWebSockets

Delphi、C++ Builder、Lazarus、.NET 向けの WebSocket、HTTP/2、MQTT、AMQP、WebRTC、AI、30 以上の API 連携を提供します。Core ランタイムはここにあり、Enterprise エディションには OpenAPI サーバーも含まれます。

sgcHTTP

Delphi と C++ Builder 向けの HTTP サーバー、HTTP/2 クライアント、gRPC クライアント、そして Google Cloud の Pub/Sub、Calendar、FCM クライアントです。単体製品で、sgcWebSockets Core ランタイムを同梱しています。

sgcAuth

OAuth2 と JWT のクライアントコンポーネントに加え、WebAuthn パスキーによるサインインを提供します。REST API のユーザーストアと自然に組み合わせられます。

sgcAI

Delphi と C++ Builder 向けの AI、LLM、MCP コンポーネント。1 つのコンポーネントの背後に 7 つの LLM プロバイダー、さらに MCP、埋め込み、音声。

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 ランタイムを同梱しています。

sgcOpenAPI

OpenAPI 3.x パーサー、ネイティブ Pascal SDK ジェネレーター、1,195 以上の構築済みクラウド SDK を提供します。ランタイムクライアントではなく、オフラインでのコード生成向けです。

sgcHTML

Delphi、C++ Builder、.NET 向けの、Bootstrap 5 と htmx を基盤とするサーバーサイド HTML / UI コンポーネントです。

sgcQUIC

生の QUIC トランスポートと HTTP/3 のクライアントおよびサーバー、WebTransport 対応。sgcWebSockets Enterprise のアドオンです。

sgcSign

ドキュメントには XAdES、PAdES、CAdES、ASiC、コードには Authenticode、ClickOnce、NuGet、VSIX。

sgcPDF

PDF ファイルの作成、編集、表示、署名、墨消し、検証を純粋な Object Pascal で提供します。DLL の配布は不要で、単体でライセンスされます。

sgcBiometrics

Delphi と C++ Builder 向けの Windows Hello、指紋センサー、Windows Biometric Framework。

sgcIndy

モダンな TLS、IPv6、HTTP/2 に対応した更新版 Indy TCP/IP コンポーネント。Delphi 7 から 13 まで対応します。

ブログの最新記事

すべての記事を見る →

現在は eSeGeCe の REST & OpenAPI ビューを表示しています。

別の切り口を見る →
30日間返金保証ご満足いただけない場合は、ご購入から30日以内に全額返金をリクエストできます。 返金ポリシーを見る