eSeGeCe — komponenty komunikacyjne klasy enterprise dla Delphi i .NET
WYRÓŻNIONE · sgcREST

API REST z kontraktu OpenAPI, natywnie w Delphi

Trzy komponenty pokrywają dwa zadania. TsgcHTTPRESTServer to serwer REST z obsługą CORS, opcjonalnymi punktami końcowymi /metrics i /health oraz wbudowanym rozpoznawaniem dzierżawcy dla każdego żądania. TsgcWSAPIServer_OpenAPI wczytuje kontrakt OpenAPI 3.x przez LoadFromFile i na jego podstawie rozdziela, waliduje i uwierzytelnia każde żądanie. TsgcOpenAPI_Client to klasa bazowa, na której zbudowani są typowani klienci dla dowolnego API opisanego w OpenAPI. Samodzielnie, środowisko uruchomieniowe sgcWebSockets Core jest w zestawie.

  • 3 klasy komponentów
  • Serwer REST · Serwer OpenAPI · Klient OpenAPI
  • CORS, /metrics, /health, wielodostępność
  • Delphi od 7 do 13 · C++ Builder

Dwa komponenty na palecie, jedna klasa bazowa klienta

sgcREST to pakiet samodzielny. Zawiera środowisko uruchomieniowe sgcWebSockets Core, na którym jest zbudowany, a każda licencja jest dostarczana z pełnym kodem źródłowym, więc trasowanie REST i walidację OpenAPI prześledzisz we własnym debugerze.

2 Komponenty na palecie TsgcHTTPRESTServer na stronie palety SGC REST, TsgcWSAPIServer_OpenAPI na stronie palety SGC OpenAPI.
3 Klas komponentów łącznie Serwer REST, serwer OpenAPI oraz klasa bazowa klienta OpenAPI.
2 Wbudowane punkty końcowe /metrics i /health, opcjonalne i serwowane za takim uwierzytelnianiem (Authentication), jakie serwer już wymusza.
1 Instalator samodzielny Środowisko uruchomieniowe sgcWebSockets Core i warstwa HTTP/TLS są dostarczane wewnątrz pakietu.
100% Kod źródłowy w zestawie Każda licencja niesie pełne źródło wszystkich trzech komponentów oraz dołączonego środowiska uruchomieniowego.
sgcREST

Komponenty serwera REST oraz serwera/klienta OpenAPI dla Delphi i C++ Builder. Pakiet samodzielny z dołączonym środowiskiem uruchomieniowym sgcWebSockets Core, pełnym kodem źródłowym i wdrożeniem bez opłat licencyjnych.

Publikuj API albo z niego korzystaj

Trzy klasy dzielą się wyraźnie według kierunku. Serwer REST i serwer OpenAPI publikują punkty końcowe, do których docierają twoi wywołujący. Klasa bazowa klienta OpenAPI to ta, na której wygenerowane SDK wywołują cudze punkty końcowe.

Serwer REST

CORS, metryki, kondycja i wielodostępność wbudowane

TsgcHTTPRESTServer rozszerza serwer HTTP sgcWebSockets o codzienne mechanizmy, których potrzebuje API REST: CORSOptions dla żądań cross-origin, opcjonalne punkty końcowe /metrics i /health przez ServerStats oraz rozpoznawanie dzierżawcy dla każdego żądania przez Tenancy, na podstawie hosta, ścieżki, nagłówka lub oświadczenia JWT. Tenant udostępnia rozpoznaną wartość twoim własnym procedurom obsługi żądań.

Zobacz serwer REST →
Serwer OpenAPI

Wczytaj kontrakt, rozdzielaj i waliduj każde żądanie

TsgcWSAPIServer_OpenAPI wczytuje dokument OpenAPI 3.x przez LoadFromFile lub LoadFromString i zamienia go w żywy dyspozytor: każde nadchodzące żądanie jest dopasowywane do kontraktu i kierowane do twojej procedury OnRequest według identyfikatora operacji. OnValidationError, OnAuthenticate, OnValidateAPIKey, OnValidateBasic i OnValidateBearer obsługują schematy zabezpieczeń zadeklarowane w specyfikacji, a OnBeforeRequest/OnAfterRequest obejmują całe wywołanie.

Zobacz serwer OpenAPI →
Klient OpenAPI

Jedna klasa bazowa za każdym wygenerowanym SDK

TsgcOpenAPI_Client to uniwersalny klient uruchomieniowy dla dowolnego API opisanego w OpenAPI: Authentication obejmuje uwierzytelnianie Basic, token bearer, ogólne OAuth2 i JWT, a HTTP_REQUEST i HTTP_REQUEST_Async wykonują wywołanie. Wskaż SetBaseURL na wczytany albo samodzielnie wygenerowany kontrakt, a klient jest gotowy do użycia.

Zobacz, co potrafi →
Pełna widoczność

Każde wywołanie zwrotne, którego potrzebuje specyfikacja

OnException przechwytuje błędy procedury obsługi, zanim trafią na łącze, a zdarzenia walidacji i uwierzytelniania otrzymują sparsowany TsgcOpenAPIServerContext, z PathParams, QueryParams i RespondJSON, więc nic w tym, dlaczego wywołanie zostało przyjęte albo odrzucone, nie jest przed tobą ukryte.

Powierzchnia walidacji →
Wieloplatformowość

Pięć platform, jedno środowisko uruchomieniowe

Serwer REST i serwer OpenAPI są potomkami TsgcHTTPServer, a klient OpenAPI działa na tym samym stosie HTTPS co reszta środowiska uruchomieniowego Core. Od Delphi 7 po RAD Studio 13, także w C++ Builder.

Matryca funkcji →

Strony referencyjne każdego komponentu:

Publikuj punkt końcowy albo publikuj kontrakt

Serwer REST przekazuje ci żądanie bezpośrednio. Serwer OpenAPI przekazuje ci już zwalidowaną, dopasowaną operację. Oba kompilują się tak samo w Delphi od 7 do 13 oraz w 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.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;

Ten sam kształt w Object Pascalu i w C++ Builder. Pełna matryca funkcji →

Dwie rzeczy, które warto wiedzieć najpierw

Czego sgcREST od ciebie wymaga i czego nie potrzebuje. Obie odpowiedzi są krótkie i obie znajdziesz na tej stronie, a nie drobnym drukiem.

Trzy komponenty, dwa zadania
komponent                           rola
TsgcHTTPRESTServer                  publikuje API REST: CORS,
                                       /metrics, /health, wielodostępność
TsgcWSAPIServer_OpenAPI             publikuje API REST na podstawie
                                       kontraktu OpenAPI 3.x
TsgcOpenAPI_Client                  korzysta z dowolnego API opisanego w OpenAPI

Oba komponenty serwerowe są potomkami TsgcHTTPServer,
  więc podpinają się pod ten sam Port, TLSOptions
  i Authentication, których używają już twoje
  pozostałe serwery sgcWebSockets.

sgcREST jest samodzielny

Samodzielnie, środowisko uruchomieniowe sgcWebSockets Core jest w zestawie: stos serwera HTTP/TLS, na którym działają zarówno serwer REST, jak i serwer OpenAPI, oraz warstwa JSON, którą klient OpenAPI dekoduje odpowiedzi. Jeden instalator, pełny kod źródłowy w pakiecie.

Serwer REST i serwer OpenAPI dzielą jedną podstawę

TsgcHTTPRESTServer oraz serwer HTTP, do którego podpina się serwer OpenAPI, są potomkami TsgcHTTPServer, więc CORS, TLS, Authentication i potok żądań zachowują się tak samo, niezależnie od tego, który z nich publikuje twoje API.

Klient OpenAPI potrzebuje tylko kontraktu

TsgcOpenAPI_Client rozwiązuje ścieżki, nagłówki i uwierzytelnianie wprost z dokumentu OpenAPI, przez zwykły stos HTTPS środowiska uruchomieniowego Core.

Delphi i C++ Builder

sgcREST jest przeznaczony dla Delphi od 7 do RAD Studio 13 oraz C++ Builder. Serwer REST znajdziesz także wewnątrz sgcWebSockets od edycji Professional wzwyż, a serwer i klient OpenAPI są dostarczane również z istniejącym pakietem sgcOpenAPI, więc może już obejmować cię istniejąca licencja. Bezpłatny instalator próbny to wersja próbna sgcWebSockets All-Access, więc wszystkie trzy klasy możesz wypróbować już dziś.

OpenAPI 3.x CORS Wielodostępność /metrics i /health Pełne źródło

Każdy komponent i właściwość →

sgcREST implementuje powierzchnie REST i OpenAPI opisane w twoim kontrakcie, zamiast opakowywać generator kodu, nad którym nie masz kontroli, więc żądania, walidacja i trasowanie są w pełni pierwszorzędnymi metodami i zdarzeniami, a pełny kod źródłowy oznacza, że nic pomiędzy nimi nie jest czarną skrzynką.

Trzynaście bibliotek, jedna skrzynka narzędziowa

sgcREST to jedna z trzynastu bibliotek komponentów eSeGeCe dla Delphi, C++ Builder i .NET. Dzielą te same konwencje, dostarczane są z pełnym kodem źródłowym i wdrażane bez opłat licencyjnych.

sgcREST

Serwer REST, serwer OpenAPI oraz komponenty klienta OpenAPI dla Delphi i C++ Builder. Publikuj API REST na podstawie kontraktu OpenAPI 3.x albo korzystaj z dowolnego API opisanego w OpenAPI. Produkt samodzielny, z dołączonym środowiskiem uruchomieniowym sgcWebSockets Core.

Dowiedz się więcej →

sgcHTTP

Klient HTTP/2, klient gRPC oraz klienty Google Cloud Pub/Sub, Calendar i FCM dla Delphi i C++ Builder. Produkt samodzielny, z dołączonym środowiskiem uruchomieniowym sgcWebSockets Core.

Dowiedz się więcej →

sgcAuth

Klient OAuth2, klient JWT i obsługa WebAuthn dla Delphi i C++ Builder. Produkt samodzielny, z dołączonym środowiskiem uruchomieniowym sgcWebSockets Core.

Dowiedz się więcej →

sgcWebSockets

WebSocket, HTTP/2, MQTT, AMQP, WebRTC, AI oraz ponad 30 integracji API dla Delphi, C++ Builder, Lazarus i .NET. Jej edycja Enterprise zawiera także gRPC.

Dowiedz się więcej →

sgcMQ

Komponenty klienckie MQTT, AMQP 0.9.1 i 1.0, Apache Kafka oraz STOMP dla Delphi i C++ Builder. Produkt samodzielny, z dołączonym środowiskiem uruchomieniowym sgcWebSockets Core.

Dowiedz się więcej →

sgcSocial

Komponenty klienckie Telegram i WhatsApp Business dla Delphi i C++ Builder. Produkt samodzielny, z dołączonym środowiskiem uruchomieniowym sgcWebSockets Core.

Dowiedz się więcej →

sgcHTML

Serwerowe komponenty HTML i UI na Bootstrap 5 i htmx dla Delphi, C++ Builder i .NET.

Dowiedz się więcej →

sgcQUIC

Surowy transport QUIC oraz klient i serwer HTTP/3, z WebTransport. Dodatek do sgcWebSockets Enterprise.

Dowiedz się więcej →

sgcAI

Komponenty AI, LLM i MCP dla Delphi oraz C++ Builder. Siedmiu dostawców LLM za jednym komponentem, a do tego MCP, embeddingi i mowa. Produkt samodzielny, z dołączonym środowiskiem uruchomieniowym sgcWebSockets Core.

Dowiedz się więcej →

sgcOpenAPI

Parser OpenAPI 3.x, natywny generator SDK w Pascalu, komponent serwera OpenAPI oraz ponad 1 195 gotowych SDK chmurowych.

Dowiedz się więcej →

sgcSign

XAdES, PAdES, CAdES i ASiC dla dokumentów, Authenticode, ClickOnce, NuGet i VSIX dla kodu.

Dowiedz się więcej →

sgcBiometrics

Windows Hello, czytniki linii papilarnych i Windows Biometric Framework dla Delphi i C++ Builder.

Dowiedz się więcej →

sgcIndy

Zaktualizowane komponenty Indy TCP/IP z nowoczesnym TLS, IPv6 i HTTP/2 od Delphi 7 do 13.

Dowiedz się więcej →

Zobacz cennik i licencje Pobierz bezpłatną wersję próbną

Co mówią programiści

Zaufali nam programiści Delphi, C++ Builder, Lazarus i .NET na całym świecie.

Wasza biblioteka sgcWebSockets jest bardzo przydatna i łatwa w konfiguracji. Tak trzymać!

Simone Moretti Programista Delphi

sgcWebSockets jest niesamowity, a wasze wsparcie jest najlepsze!

Christian Meyer Założyciel i CTO

Bardzo dziękuję za pomoc i wsparcie, uwielbiam wasze komponenty.

Mark Steinfeld CTO

Oglądasz widok REST i OpenAPI eSeGeCe.

Pokaż mi inne ujęcie →

API REST, kontrakty OpenAPI, natywny kod

Serwer REST, serwer OpenAPI i klient OpenAPI, ze środowiskiem uruchomieniowym sgcWebSockets Core w zestawie i pełnym kodem źródłowym w pakiecie.