sgcREST: serwer REST API i komponenty OpenAPI dla Delphi i C++ Builder
Produkt samodzielny Serwer REST i OpenAPI

sgcREST: serwer REST API i komponenty OpenAPI dla Delphi i C++ Builder

Dwa zadania, siedem klas. TsgcHTTPRESTServer to serwer API REST z obsługą CORS i trzema dołączanymi komponentami towarzyszącymi: statystykami żądań, wielodostępnością i lokalnym magazynem użytkowników. Obok niego silnik OpenAPI serwuje API wprost ze specyfikacji albo generuje tę specyfikację z oznaczonej atrybutami klasy Delphi, a TsgcOpenAPI_Client korzysta z dowolnego API opisanego w OpenAPI. sgcREST jest samodzielny, zawiera środowisko uruchomieniowe sgcWebSockets Core, na którym zbudowana jest każda klasa.

Pełny kod źródłowy
Delphi od 7 do 13 i C++ Builder
Środowisko w zestawie sgcWebSockets Core Środowisko HTTP, TLS i JSON pod każdą klasą
Serwer REST TsgcHTTPRESTServer
OpenAPI TsgcOpenAPI_Client
4 Komponenty na palecie Serwer REST, statystyki, wielodostępność i użytkownicy, jedna strona na palecie
7 Klas łącznie Rodzina serwera REST, silnik serwera OpenAPI i klient OpenAPI
4 Schematy uwierzytelniania klienta Wbudowane uwierzytelnianie Basic, token bearer, ogólne OAuth2 i JWT
100% Kod źródłowy w zestawie Wszystkich siedmiu klas oraz dołączonego środowiska uruchomieniowego Core
12 Miesięcy aktualizacji Każde wydanie opublikowane w czasie aktywności twojej licencji

Dwie rzeczy, które warto wiedzieć najpierw

Czego sgcREST od ciebie wymaga, a czego nie. Obie odpowiedzi są krótkie.

sgcREST jest samowystarczalny

Samodzielnie, środowisko uruchomieniowe sgcWebSockets Core jest w zestawie: stos serwera i klienta HTTP/TLS, na którym działa serwer REST i każda klasa OpenAPI, oraz warstwa JSON, która serializuje każde żądanie i odpowiedź. Jedno SKU, jeden instalator, a sgcREST działa na standardowej bibliotece Indy dostarczanej z RAD Studio.

Pełny kod źródłowy jest dostarczany z każdą licencją, więc serwer REST, jego komponenty towarzyszące oraz silnik OpenAPI prześledzisz we własnym debugerze, zamiast oglądać je znikające w pliku binarnym.

Jedno wymaganie wersji

OpenAPI code-first wymaga Delphi XE7+

Generowanie specyfikacji OpenAPI z oznaczonej atrybutami klasy Delphi opiera się na RTTI, które pojawiło się w Delphi XE7, więc TsgcOpenAPICodeFirstScanner i TsgcOpenAPICodeFirstDispatcher kompilują się od XE7 wzwyż. Serwer REST wraz z komponentami towarzyszącymi oraz silnik OpenAPI spec-first, który trasuje na podstawie dokumentu JSON lub YAML, który już posiadasz, działają na każdym obsługiwanym kompilatorze, od Delphi 7 do 13.

Nie masz dokumentu OpenAPI, od którego mógłbyś zacząć? Napisz najpierw klasę Delphi i pozwól, aby skaner wygenerował go za ciebie, dokładnie do tego służy code-first od XE7 wzwyż.

Cztery komponenty na palecie, trzy klasy dostępne wyłącznie z kodu

Serwer REST i jego trzy komponenty towarzyszące to niewizualne komponenty na stronie palety SGC REST, zadeklarowane w modułach sgcHTTP_REST_Server*. Umieść TsgcHTTPRESTServer na formularzu albo utwórz go w kodzie, a następnie podłącz ServerStats i Tenancy według potrzeb. Silnik serwera OpenAPI oraz klasa klienta OpenAPI znajdują się w modułach sgcHTTP_OpenAPI_* jako klasy dostępne wyłącznie z kodu, nie ma tam nic do umieszczenia na formularzu: utwórz jedną, skonfiguruj ją i wywołuj jej metody bezpośrednio.

Serwer REST4 komponenty

Jeden serwer, trzy komponenty towarzyszące podłączane według potrzeb

TsgcHTTPRESTServer rozszerza standardowy TsgcHTTPServer o obsługę CORS przez CORSOptions oraz dwie właściwości dla opcjonalnych komponentów towarzyszących: ServerStats i Tenancy. TsgcHTTPServerStats zlicza każde żądanie według klasy statusu, śledzi minimalne, średnie i maksymalne opóźnienie oraz udostępnia punkt końcowy /metrics w formacie Prometheus wraz z punktem końcowym JSON /health, a GetEndpointStats daje rozbicie na poszczególne trasy. TsgcHTTPServer_Tenancy rozpoznaje dzierżawcę wywołującego na podstawie nazwy hosta, segmentu ścieżki, nagłówka żądania lub oświadczenia JWT, a własna właściwość Tenant serwera odczytuje wynik dla obsługiwanego żądania. TsgcHTTPServer_Users to czwarty, niezależny komponent towarzyszący: lokalny magazyn kont z AddUser, ValidateCredentials, tagami ról i haszowaniem haseł z solą, z opcjonalnym szyfrowaniem danych w spoczynku, odpytywany bezpośrednio z procedury obsługi trasy, a nie podpięty do serwera jako właściwość.

Serwer OpenAPI2 sposoby definiowania API

Serwuj specyfikację, którą już masz, albo wygeneruj ją z kodu

Spec-first: wczytaj dokument OpenAPI 3.0 lub 3.1, a TsgcOpenAPIRouteTable automatycznie zbuduje tablicę tras z jego sekcji paths. Dopasowane żądanie trafia jako TsgcOpenAPIServerContext, z typowanym dostępem do parametrów ścieżki i zapytania, pomocnikami treści oraz RespondJSON/RespondError, TsgcOpenAPIServerHandler opakowuje każde wywołanie w BeforeHandle, AfterHandle i HandleException, a TsgcOpenAPIJSONValidator sprawdza treści, parametry zapytania i ścieżki względem schematów JSON zadeklarowanych w specyfikacji. Code-first odwraca źródło prawdy: oznacz zwykłą klasę Delphi atrybutami sgcServiceContract, sgcRoute, sgcHttpGet/sgcHttpPost i sgcFromPath/sgcFromQuery/sgcFromBody, a TsgcOpenAPICodeFirstScanner.GenerateSpec wygeneruje dokument OpenAPI wprost z jej RTTI, bez ręcznego pisania YAML. Połącz go z TsgcOpenAPICodeFirstDispatcher, a oznaczone atrybutami metody są wywoływane bezpośrednio dla każdej operacji, bez ręcznego łańcucha rozdzielania. Code-first wymaga Delphi XE7 lub nowszego.

Klient OpenAPI1 klasa

Korzystaj z dowolnego API opisanego w OpenAPI

TsgcOpenAPI_Client to uniwersalny klient uruchomieniowy dla dowolnego punktu końcowego opisanego w dokumencie OpenAPI: HTTP_REQUEST niesie wywołanie, Authentication obejmuje uwierzytelnianie Basic i tokeny bearer, a także ogólne OAuth2 i JWT, a OnBeforeRequest, OnUpload i OnDownload je śledzą.

Jeden serwer, składalne komponenty towarzyszące

Siedem klas dzieli się wyraźnie według roli. Serwer REST przenosi ruch HTTP, trzy komponenty towarzyszące dodają to, czego potrzebuje produkcyjne API, a silnik OpenAPI zamienia specyfikację, napisaną albo wygenerowaną, w działającą tablicę tras.

Serwer REST to TsgcHTTPServer z dodatkami

TsgcHTTPRESTServer dziedziczy powiązania, obsługę TLS i HTTP/2 ze zwykłego serwera HTTP dostarczanego w każdej edycji sgcWebSockets, i dokłada do tego obsługę CORS oraz dwa dołączane komponenty towarzyszące, dzięki czemu API REST zyskuje metryki, kontrole kondycji i wielodostępność bez osobnego frameworka.

Statystyki, wielodostępność i użytkownicy to komponenty towarzyszące, a nie wbudowane na stałe funkcje

TsgcHTTPServerStats, TsgcHTTPServer_Tenancy i TsgcHTTPServer_Users to osobne komponenty. Podłącz te, których potrzebuje dane API, a resztę pomiń, podłączony, lecz nieskonfigurowany komponent towarzyszący nic nie kosztuje serwera przy sprawdzaniu.

Spec-first i code-first trafiają do tej samej tablicy tras

Niezależnie od tego, czy dokument OpenAPI pochodzi z wczytanego pliku, czy z TsgcOpenAPICodeFirstScanner.GenerateSpec skanującego oznaczoną atrybutami klasę, oba są w formacie JSON, a ta sama tablica tras i kontekst żądania obsługują każdy z nich. Tylko sam skaner code-first wymaga Delphi XE7 lub nowszego.

Środowisko uruchomieniowe Core jest w zestawie

Samodzielnie, środowisko uruchomieniowe sgcWebSockets Core jest w zestawie. Dostarcza stos HTTP/TLS, na którym działa serwer REST i każda klasa OpenAPI, a jego pełne źródło jest częścią pakietu, tak jak wszystko inne.

Serwer REST i klient OpenAPI, obok siebie

Serwer REST jest zadeklarowany w module sgcHTTP_REST_Server, a klient OpenAPI w module sgcHTTP_OpenAPI_Client. Ten sam kod kompiluje się w Delphi od 7 do 13 oraz w C++ Builder.

uses
  sgcHTTP_REST_Server, sgcHTTP_OpenAPI_Client;

var
  RESTServer: TsgcHTTPRESTServer;
  APIClient: TsgcOpenAPI_Client;
  Request: TsgcOpenAPIRequest;
  Response: TsgcOpenAPIResponse;
begin
  // REST server: CORS on, stats and health/metrics wired in
  RESTServer := TsgcHTTPRESTServer.Create(nil);
  RESTServer.Bindings.Add.Port := 8080;
  RESTServer.CORSOptions.Enabled := True;
  RESTServer.ServerStats := HTTPServerStats1;
  RESTServer.Active := True;

  // 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;
// include: sgcHTTP_REST_Server.hpp, sgcHTTP_OpenAPI_Client.hpp

// REST server: CORS on, stats and health/metrics wired in
TsgcHTTPRESTServer *RESTServer = new TsgcHTTPRESTServer(this);
RESTServer->Bindings->Add()->Port = 8080;
RESTServer->CORSOptions->Enabled = true;
RESTServer->ServerStats = HTTPServerStats1;
RESTServer->Active = true;

// OpenAPI client: call any OpenAPI-described API with basic auth
TsgcOpenAPI_Client *APIClient = new TsgcOpenAPI_Client(this);
APIClient->SetBaseURL("https://api.example.com");
APIClient->Authentication->Basic->Enabled = true;
APIClient->Authentication->Basic->Username = "apiuser";
APIClient->Authentication->Basic->Password = "...";

TsgcOpenAPIRequest *Request = new TsgcOpenAPIRequest();
TsgcOpenAPIResponse *Response = new TsgcOpenAPIResponse();
APIClient->HTTP_REQUEST(Request, Response);

Bez dodatku, każda platforma

Wszystkie siedem klas działa na standardowej bibliotece Indy dostarczanej z RAD Studio, więc cały zakres platform, który już obejmuje sgcWebSockets, jest dostępny bez potrzeby dodatku.

Rodzina serwera REST TsgcHTTPRESTServer, ServerStats, Tenancy & Users
Windows Win32 Windows Win64 Linux64 macOS iOS Android
Rodzina serwera i klienta OpenAPI Spec-first, code-first oraz klasa klienta OpenAPI
Windows Win32 Windows Win64 Linux64 macOS iOS Android
Obsługa IDE Jedno drzewo źródeł, pakiety projektowe dla każdej wersji
Delphi od 7 do 13 C++ Builder
OpenAPI code-first Wymaga RTTI, które pojawiło się w Delphi XE7
Delphi od XE7 do 13
Instalator próbny Wersja próbna sgcWebSockets All-Access zawiera komponenty sgcREST
Jedno pobranie, wszystkie siedem klas

Pobierz instalator wersji próbnej →

Pakiet samodzielny

sgcREST jest licencjonowany samodzielnie, już od €249 dla jednego programisty. Wszystkie licencje obejmują pełny kod źródłowy, 1 rok aktualizacji oraz od 50% do 70% rabatu na odnowienie: 50% przy odnowieniu jednego pakietu, 60% przy dwóch, 70% przy trzech lub więcej. sgcAI, sgcMQ, sgcSocial, sgcAuth, sgcHTTP i sgcREST liczą się każdy jako jeden pakiet. sgcREST jest również objęty pakietem All-Access.

sgcREST

€249

Dostępne licencje Single, Team i Site.

  • Serwer REST z CORS, statystykami, wielodostępnością i użytkownikami
  • Serwer OpenAPI, spec-first i code-first
  • Klient OpenAPI dla dowolnego API opisanego w OpenAPI
  • Środowisko uruchomieniowe sgcWebSockets Core w zestawie
  • Delphi od 7 do 13 i C++ Builder
  • Pełny kod źródłowy
  • 1 rok aktualizacji

Żadnego dodatku do dodania lub usunięcia przy zamówieniu, sgcREST działa na standardowej bibliotece Indy dostarczanej z RAD Studio.

Zamówienie zawiera dwie pozycje: uprawnienie do środowiska uruchomieniowego sgcWebSockets Core, naliczane jako zero, oraz sam pakiet sgcREST. Pełne szczegóły cennika.

3,000+Developers
20+Years
761+Components
30+API Integrations
5Platforms
30-dniowa gwarancja zwrotu pieniędzyNie jesteś zadowolony? Poproś o pełny zwrot pieniędzy w ciągu 30 dni od zakupu. Zobacz politykę zwrotów

API REST i OpenAPI, wbudowane wprost w natywny kod

Serwer REST ze statystykami, wielodostępnością i użytkownikami, serwer OpenAPI działający w trybie spec-first lub code-first oraz klient OpenAPI dla dowolnego API opisanego w OpenAPI, ze środowiskiem uruchomieniowym w zestawie i pełnym kodem źródłowym w pakiecie. Pobierz instalator próbny All-Access i wypróbuj wszystkie siedem klas już dziś.

Inne produkty eSeGeCe

Połącz sgcREST z naszymi pozostałymi bibliotekami komponentów dla Delphi, C++ Builder i .NET.

sgcWebSockets

Pełna biblioteka: klienci i serwery WebSocket, HTTP/2, gRPC, IoT, P2P oraz komponenty AI. Jej edycja Enterprise zawiera także serwer OpenAPI.

Dowiedz się więcej →

sgcHTTP

Komponenty klienckie HTTP/2, gRPC oraz Google Cloud Pub/Sub, Calendar i Firebase Cloud Messaging, z dołączonym środowiskiem uruchomieniowym Core.

Dowiedz się więcej →

sgcAuth

Komponenty klienckie OAuth2 i JWT wraz z logowaniem kluczem dostępu WebAuthn, naturalne uzupełnienie magazynu użytkowników API REST.

Dowiedz się więcej →

sgcAI

Komponenty AI, LLM i MCP. Jeden komponent czatu sięga do OpenAI, Anthropic, Gemini, DeepSeek, Ollama, Grok i Mistral.

Dowiedz się więcej →

sgcMQ

Natywne komponenty klienckie MQTT 3.1.1/5.0, AMQP 0.9.1, AMQP 1.0, Apache Kafka i STOMP, z dołączonym środowiskiem uruchomieniowym Core.

Dowiedz się więcej →

sgcOpenAPI

Osobny, dołączony produkt: parser OpenAPI 3.x, natywny generator SDK w Pascalu oraz ponad 1 195 gotowych SDK chmurowych, do generowania kodu offline zamiast klienta uruchomieniowego.

Dowiedz się więcej →