sgcREST API REST, natywnie w Delphi. OpenAPI wbudowane.

Dwa zadania, siedem klas. TsgcHTTPRESTServer publikuje API REST z CORS, /metrics i /health, wielodostępnością i magazynem użytkowników. Silnik OpenAPI obsługuje API prosto z kontraktu OpenAPI 3.x albo generuje kontrakt z twojej klasy Delphi, a TsgcOpenAPI_Client korzysta z dowolnego API opisanego w OpenAPI. Środowisko uruchomieniowe sgcWebSockets Core jest w zestawie.

Opublikuj pierwszy endpoint w kilku linijkach →
  • Delphi 7 do 13
  • C++ Builder
  • OpenAPI 3.x
  • CORS
  • /metrics and /health
  • Wielodostępność
  • Pełny kod źródłowy
  • 4Komponenty na palecie: serwer REST, statystyki, wielodostępność i użytkownicy
  • 7Klas łącznie: rodzina serwera REST, silnik OpenAPI i klient
  • 4Schematy uwierzytelniania klienta: Basic, token bearer, OAuth2 i JWT
  • 2Wbudowane endpointy, /metrics i /health, oba opcjonalne
  • 100%Kod źródłowy w każdej licencji
Zobacz, jak działa

Zobacz sgcREST w dwie minuty.

Przewodnik z narracją i napisami po serwerze REST: serwer HTTP, który już znasz, plus cztery rzeczy, których API REST zawsze w końcu potrzebuje. Nic się nie pobiera, dopóki nie naciśniesz odtwarzania.

Szybki start sgcREST

Zbuduj serwer REST API w Delphi z CORS, statystykami na żywo, wielodostępnością i użytkownikami.

  1. Wszystko odziedziczoneTsgcHTTPRESTServer wywodzi się z TsgcHTTPServer: Port, TLS, Authentication, sesje, kompresja, pula wątków, firewall i ogranicznik szybkości.
  2. Wszystko opcjonalneCORS jest domyślnie wyłączony, a ServerStats i Tenancy są nieprzypisane. Nic nie włącza się samo po aktualizacji.
  3. CORSWymień dozwolone originy, metody i nagłówki, a serwer sam obsłuży preflight OPTIONS.
  4. Metryki i stanPrzypisz TsgcHTTPServerStats i otrzymaj /metrics oraz /health, oba za bramką uwierzytelniania serwera.
  5. WielodostępnośćKażde żądanie jest mapowane na tenanta według hosta, ścieżki, nagłówka lub claimu JWT. Procedury obsługi po prostu czytają Tenant.
  6. Gotowy magazyn użytkownikówKonta, solone hashe haseł i role. Wbudowana bramka Basic rozwiązuje każde poświadczenie na jego podstawie.
Co jest w pakiecie

Cztery komponenty na palecie, trzy klasy tylko w kodzie.

Serwer REST i jego trzej towarzysze to komponenty niewizualne na stronie palety SGC REST. Silnik serwera OpenAPI i klient OpenAPI znajdują się w modułach sgcHTTP_OpenAPI_*: utwórz jeden, skonfiguruj go i wywołuj jego metody bezpośrednio.

Serwer REST · jeden serwer, trzej towarzysze

Zobacz →
  • TsgcHTTPRESTServer
  • TsgcHTTPServerStats
  • TsgcHTTPServer_Tenancy
  • TsgcHTTPServer_Users
  • CORSOptions
  • ServerStats
  • Tenancy
  • Tenant

TsgcHTTPRESTServer rozszerza standardowy TsgcHTTPServer o obsługę CORS przez CORSOptions oraz dwie właściwości dla opcjonalnych towarzyszy. TsgcHTTPServerStats zlicza każde żądanie według klasy statusu, śledzi minimalne, średnie i maksymalne opóźnienie oraz udostępnia endpoint /metrics w formacie Prometheus i endpoint JSON /health, a GetEndpointStats daje podział na trasy. TsgcHTTPServer_Tenancy ustala tenanta wywołującego na podstawie nazwy hosta, segmentu ścieżki, nagłówka żądania lub claimu JWT, a Tenant odczytuje wynik dla obsługiwanego żądania. TsgcHTTPServer_Users to samodzielny magazyn kont, solonych hashy haseł i ról.

Serwer OpenAPI · spec-first lub code-first

Zobacz →
  • TsgcOpenAPIRouteTable
  • TsgcOpenAPIServerContext
  • TsgcOpenAPIServerHandler
  • TsgcOpenAPIJSONValidator
  • TsgcOpenAPICodeFirstScanner
  • RespondJSON

Wczytaj dokument OpenAPI 3.0 lub 3.1, a tablica tras zostanie zbudowana z jego sekcji paths. Dopasowane żądanie przychodzi jako TsgcOpenAPIServerContext, z typowanymi parametrami ścieżki i zapytania, pomocnikami ciała oraz RespondJSON/RespondError, a walidator sprawdza ciała, parametry zapytania i ścieżki względem schematów JSON zadeklarowanych w specyfikacji. Code-first odwraca źródło prawdy: opisz atrybutami zwykłą klasę Delphi, a skaner wygeneruje specyfikację.

Klient OpenAPI · dowolne opisane API

Zobacz →
  • TsgcOpenAPI_Client
  • SetBaseURL
  • HTTP_REQUEST
  • HTTP_REQUEST_Async
  • Uwierzytelnianie
  • OnBeforeRequest
  • OnUpload
  • OnDownload

Ogólny klient uruchomieniowy dla każdego endpointu opisanego w dokumencie OpenAPI oraz klasa bazowa generowanych SDK. Authentication obsługuje uwierzytelnianie Basic i tokeny bearer oraz ogólne OAuth2 i JWT, HTTP_REQUEST niesie wywołanie, a OnBeforeRequest, OnUpload i OnDownload je śledzą.

Zobacz wszystkie komponenty i właściwości

Jak to działa

Jeden serwer, komponowalni towarzysze.

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

TsgcHTTPServer z dodatkami

TsgcHTTPRESTServer dziedziczy powiązania, TLS i obsługę HTTP/2 zwykłego serwera HTTP dostępnego w każdej edycji sgcWebSockets i dodaje CORS oraz właściwości towarzyszy, więc API REST dostaje metryki, kontrole stanu i wielodostępność bez osobnego frameworka.

Towarzysze, nie wbudowani na stałe

Statystyki, wielodostępność i użytkownicy to osobne komponenty. Podłącz te, których potrzebuje dane API, a resztę pomiń. Podłączony, ale nieskonfigurowany towarzysz nic nie kosztuje serwera przy sprawdzaniu.

Spec-first i code-first, jedna tablica tras

Niezależnie od tego, czy dokument OpenAPI pochodzi z wczytanego pliku, czy z TsgcOpenAPICodeFirstScanner.GenerateSpec skanującego klasę z atrybutami, obsługuje go ta sama tablica tras i ten sam kontekst żądania.

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

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

Sześć platform, bez dodatków

Wszystkie siedem klas działa na standardowej bibliotece Indy dostarczanej z RAD Studio: Windows Win32 i Win64, Linux64, macOS, iOS i Android. Od Delphi 7 po RAD Studio 13, także w C++ Builder.

Środowisko Core jest w pudełku

Środowisko uruchomieniowe sgcWebSockets Core wnosi stos HTTP/TLS, na którym działają serwer REST i każda klasa OpenAPI, oraz warstwę JSON, która serializuje każde żądanie i odpowiedź. Jego pełny kod źródłowy jest częścią pakietu jak wszystko inne.

Szybki start

Opublikuj endpoint, opublikuj kontrakt albo wywołaj któryś.

Serwer REST przekazuje ci żądanie bezpośrednio. Serwer OpenAPI przekazuje ci już zwalidowaną, dopasowaną operację. Klient OpenAPI wywołuje cudze endpointy. Wszystkie trzy 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.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, obsłużony za ciebieWłącz CORSOptions, wymień dozwolone originy, metody i nagłówki, a serwer obsłuży preflight OPTIONS. Dotyczy to twoich procedur obsługi oraz plików serwowanych z DocumentRoot.
  2. Statystyki jednym przypisaniemPrzypisz TsgcHTTPServerStats do ServerStats, aby uzyskać /metrics i /health. Zostaw nieprzypisane, a liczniki nie będą prowadzone wcale.
  3. Wielodostępność, zanim zadziała twój kodPrzypisz TsgcHTTPServer_Tenancy, a każde żądanie zostanie najpierw zmapowane na tenanta. Twoje procedury obsługi po prostu czytają Tenant.
  4. Użytkownicy bez procedury obsługiPrzypisz TsgcHTTPServer_Users do Authentication.Users, a wbudowana bramka Basic sama rozwiąże każde poświadczenie.
Szybki start sgcREST: TsgcHTTPServerStats włącza endpointy Metrics i Health, GET /metrics zwraca liczniki żądań, a GET /health zwraca status JSON.
Trzy linijki konfiguracji, a potem GET /metrics i GET /health odpowiadają same.

Pełna matryca funkcji

Zanim kupisz

Dwie rzeczy, które warto wiedzieć wcześniej.

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

opublikuj API REST
TsgcHTTPRESTServer        CORS, ServerStats, Tenancy
TsgcHTTPServerStats       /metrics i /health
TsgcHTTPServer_Tenancy    host, ścieżka, nagłówek, claim JWT
TsgcHTTPServer_Users      konta, hashe, role

opublikuj z kontraktu OpenAPI 3.x
tablica tras + kontekst   spec-first, Delphi 7 do 13
skaner code-first         klasa z atrybutami, XE7 i nowsze

korzystaj z API
TsgcOpenAPI_Client        dowolne API opisane w OpenAPI

TsgcHTTPRESTServer jest potomkiem
  TsgcHTTPServer, więc publikuje przez Port,
  TLS i Authentication, których już używasz.

sgcREST jest samowystarczalny

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

Code-first OpenAPI wymaga Delphi XE7+

Generowanie specyfikacji z klasy Delphi z atrybutami opiera się na RTTI, które pojawiło się w Delphi XE7, więc TsgcOpenAPICodeFirstScanner i TsgcOpenAPICodeFirstDispatcher kompilują się od XE7 wzwyż. Serwer REST, jego towarzysze i silnik spec-first działają na każdym obsługiwanym kompilatorze, od Delphi 7 do 13.

Nic pośrodku nie jest czarną skrzynką

sgcREST implementuje interfejsy REST i OpenAPI opisane przez twój kontrakt, zamiast opakowywać generator kodu, nad którym nie masz kontroli. Żądania, walidacja i dyspozycja są pełnoprawnymi metodami i zdarzeniami, a pełny kod źródłowy jest w każdej licencji, więc wszystko przejdziesz krok po kroku we własnym debuggerze.

Część sgcWebSockets

Jeden pakiet sgcWebSockets, licencjonowany osobno.

sgcREST pakuje klasy REST i OpenAPI z sgcWebSockets w jeden pakiet. Każda licencja zawiera wszystkie siedem klas, środowisko uruchomieniowe sgcWebSockets Core, pełny kod źródłowy, redystrybucję bez opłat licencyjnych oraz 1 rok aktualizacji.

Single

Licencja dla 1 programisty. Użycie na jednej maszynie naraz.

€249

Team

Licencje dla 2 programistów. Użycie na dwóch maszynach naraz.

€399

Site

Nieograniczona liczba programistów. Wszystkie maszyny firmy.

€649

Odnowienie ze zniżką od 50% do 70%. Używasz już sgcWebSockets? Serwer REST jest w edycji Professional i wyższych, a edycja Enterprise zawiera także serwer OpenAPI, więc twoja edycja może już cię obejmować, a Pakiet All-Access zawiera wszystko. Instalator próbny to wersja próbna sgcWebSockets All-Access, więc wszystkie siedem klas możesz wypróbować już dziś.

Zobacz cennik i zamów
REFERENCJE

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

API REST, kontrakty OpenAPI, natywny kod.

Serwer REST z CORS, statystykami, wielodostępnością i użytkownikami, serwer OpenAPI działający spec-first lub code-first oraz klient OpenAPI dla dowolnego opisanego API, ze środowiskiem uruchomieniowym sgcWebSockets Core w zestawie i pełnym kodem źródłowym w pudełku.

Więcej od eSeGeCe

Inne produkty eSeGeCe

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

sgcWebSockets

WebSocket, HTTP/2, MQTT, AMQP, WebRTC, AI oraz ponad 30 integracji API dla Delphi, C++ Builder, Lazarus i .NET. Tutaj mieszka środowisko Core, a jego edycja Enterprise zawiera także serwer OpenAPI.

sgcHTTP

Serwer HTTP, 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.

sgcAuth

Komponenty klienta OAuth2 i JWT oraz logowanie kluczem dostępu WebAuthn, naturalne uzupełnienie magazynu użytkowników API REST.

sgcAI

Komponenty AI, LLM i MCP dla Delphi i C++ Buildera. Siedmiu dostawców LLM w jednym komponencie, a do tego MCP, embeddingi i mowa.

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.

sgcSocial

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

sgcOpenAPI

Parser OpenAPI 3.x, natywny generator SDK w Pascalu i ponad 1 195 gotowych SDK chmurowych, do generowania kodu offline, a nie jako klient uruchomieniowy.

sgcHTML

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

sgcQUIC

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

sgcSign

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

sgcPDF

Twórz, edytuj, przeglądaj, podpisuj, cenzuruj i weryfikuj pliki PDF w czystym Object Pascalu, bez DLL do wdrożenia. Licencjonowany osobno.

sgcBiometrics

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

sgcIndy

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

Najnowsze wpisy na blogu

Zobacz wszystkie wpisy →

Oglądasz widok REST i OpenAPI eSeGeCe.

Pokaż mi inne ujęcie →
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