sgcREST REST-API's, native in Delphi. OpenAPI ingebouwd.

Twee taken, zeven klassen. TsgcHTTPRESTServer publiceert een REST-API met CORS, /metrics en /health, multi-tenancy en een gebruikersopslag. Een OpenAPI-engine serveert een API rechtstreeks vanuit een OpenAPI 3.x-contract, of genereert het contract uit je Delphi-klasse, en TsgcOpenAPI_Client gebruikt elke met OpenAPI beschreven API. De sgcWebSockets Core-runtime is inbegrepen.

Publiceer je eerste endpoint in een paar regels →
  • Delphi 7 tot 13
  • C++ Builder
  • OpenAPI 3.x
  • CORS
  • /metrics en /health
  • Multi-tenancy
  • Volledige broncode
  • 4Palettecomponenten: REST-server, statistieken, tenancy en gebruikers
  • 7Klassen in totaal: REST-serverfamilie, OpenAPI-engine en -client
  • 4Client-authenticatieschema's: Basic, bearer-token, OAuth2 en JWT
  • 2Ingebouwde endpoints, /metrics en /health, beide op aanvraag
  • 100%Broncode inbegrepen bij elke licentie
Zie het werken

Zie sgcREST in twee minuten.

Een ingesproken rondleiding met ondertitels door de REST-server: de HTTP-server die je al kent, plus de vier dingen die een REST-API uiteindelijk altijd nodig heeft. Er wordt niets gedownload tot je op afspelen drukt.

sgcREST-quickstart

Bouw een REST-API-server in Delphi met CORS, live statistieken, tenancy en gebruikers.

  1. Alles geërfdTsgcHTTPRESTServer stamt af van TsgcHTTPServer: Port, TLS, Authentication, sessies, compressie, de threadpool, de firewall en de rate limiter.
  2. Alles op aanvraagCORS staat standaard uit en ServerStats en Tenancy zijn niet toegewezen. Na een upgrade schakelt niets zichzelf in.
  3. CORSSom de origins, methoden en headers op die je toestaat, en de server beantwoordt de OPTIONS-preflight voor je.
  4. Metrics en healthWijs TsgcHTTPServerStats toe en krijg /metrics en /health, beide achter de authenticatiepoort van de server.
  5. Multi-tenancyElk request wordt gekoppeld aan een tenant op basis van de host, het pad, een header of een JWT-claim. Handlers lezen gewoon Tenant.
  6. Een kant-en-klare gebruikersopslagAccounts, gesalte wachtwoordhashes en rollen. De ingebouwde Basic-poort controleert elke inloggegevens ertegen.
Wat er in de doos zit

Vier palettecomponenten, drie klassen die alleen in code bestaan.

De REST-server en zijn drie companions zijn niet-visuele componenten op de palettepagina SGC REST. De OpenAPI-serverengine en de OpenAPI-client staan in de sgcHTTP_OpenAPI_* units: maak er een aan, configureer hem en roep zijn methoden rechtstreeks aan.

REST-server · één server, drie companions

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

TsgcHTTPRESTServer breidt de standaard TsgcHTTPServer uit met CORS-afhandeling via CORSOptions, en twee eigenschappen voor optionele companions. TsgcHTTPServerStats telt elk request per statusklasse, houdt de minimale, gemiddelde en maximale latentie bij en biedt een Prometheus-compatibel /metrics-endpoint plus een JSON /health-endpoint, met GetEndpointStats voor een uitsplitsing per route. TsgcHTTPServer_Tenancy bepaalt de tenant van de aanroeper uit de hostnaam, een padsegment, een request-header of een JWT-claim, en Tenant leest het resultaat voor het request dat wordt afgehandeld. TsgcHTTPServer_Users is een zelfstandige opslag van accounts, gesalte wachtwoordhashes en rollen.

OpenAPI-server · spec-first of code-first

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

Laad een OpenAPI 3.0- of 3.1-document en de routetabel wordt opgebouwd uit de paths-sectie. Een gematcht request komt binnen als een TsgcOpenAPIServerContext, met getypeerde pad- en queryparameters, body-helpers en RespondJSON/RespondError, en de validator controleert bodies, query- en padparameters tegen de JSON Schemas die de spec declareert. Code-first draait de bron van waarheid om: annoteer een gewone Delphi-klasse en de scanner genereert de spec.

OpenAPI-client · elke beschreven API

Bekijken →
  • TsgcOpenAPI_Client
  • SetBaseURL
  • HTTP_REQUEST
  • HTTP_REQUEST_Async
  • Authentication
  • OnBeforeRequest
  • OnUpload
  • OnDownload

Een generieke runtime-client voor elk endpoint dat een OpenAPI-document beschrijft, en de basisklasse achter gegenereerde SDK's. Authentication dekt Basic-authenticatie en bearer-tokens plus generieke OAuth2 en JWT, HTTP_REQUEST draagt de aanroep, en OnBeforeRequest, OnUpload en OnDownload volgen die.

Bekijk elke component en eigenschap

Hoe het werkt

Eén server, combineerbare companions.

De zeven klassen laten zich netjes indelen naar rol. De REST-server draagt het HTTP-verkeer, drie companions voegen toe wat een productie-API nodig heeft, en de OpenAPI-engine maakt van een spec, geschreven of gegenereerd, een werkende routetabel.

Een TsgcHTTPServer met extra's

TsgcHTTPRESTServer erft de bindings, TLS en HTTP/2-afhandeling van de gewone HTTP-server die in elke sgcWebSockets-editie zit, en voegt CORS plus de companion-eigenschappen toe, zodat een REST-API metrics, healthchecks en multi-tenancy krijgt zonder apart framework.

Companions, niet ingebakken

Statistieken, tenancy en gebruikers zijn aparte componenten. Koppel die een bepaalde API nodig heeft en laat de rest weg. Een gekoppelde maar niet geconfigureerde companion kost de server niets om te controleren.

Spec-first en code-first, één routetabel

Of het OpenAPI-document uit een bestand komt dat je laadde of uit TsgcOpenAPICodeFirstScanner.GenerateSpec het scannen van een geannoteerde klasse, dezelfde routetabel en dezelfde requestcontext bedienen beide.

Elke callback die de spec nodig heeft

Validatie- en authenticatie-events ontvangen de geparseerde TsgcOpenAPIServerContext, met PathParams, QueryParams en RespondJSON, en OnException vangt handlerfouten af voordat ze het netwerk bereiken, zodat niets over waarom een aanroep werd geaccepteerd of geweigerd voor je verborgen blijft.

Zes platformen, geen add-on

Alle zeven klassen draaien op de standaard Indy-bibliotheek die met RAD Studio wordt meegeleverd: Windows Win32 en Win64, Linux64, macOS, iOS en Android. Van Delphi 7 tot en met RAD Studio 13 en op C++ Builder.

De Core-runtime zit in de doos

De sgcWebSockets Core-runtime levert de HTTP/TLS-stack waarop de REST-server en elke OpenAPI-klasse draaien, en de JSON-laag die elk request en elke respons serialiseert. De volledige broncode maakt deel uit van het pakket, net als al het andere.

Snelstart

Publiceer een endpoint, publiceer een contract, of roep er een aan.

De REST-server geeft je het request rechtstreeks. De OpenAPI-server geeft je een gevalideerde, al gematchte operatie. De OpenAPI-client roept de endpoints van een ander aan. Alle drie compileren hetzelfde in Delphi 7 tot 13 en 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, voor je beantwoordSchakel CORSOptions in, som de origins, methoden en headers op die je toestaat, en de server beantwoordt de OPTIONS-preflight. Het geldt voor je handlers en voor bestanden die uit DocumentRoot worden geserveerd.
  2. Statistieken in één toewijzingWijs TsgcHTTPServerStats toe aan ServerStats voor /metrics en /health. Laat je het ongekoppeld, dan worden er helemaal geen tellers bijgehouden.
  3. Tenancy voordat je code draaitWijs TsgcHTTPServer_Tenancy toe en elk request wordt eerst aan een tenant gekoppeld. Je handlers lezen gewoon Tenant.
  4. Gebruikers zonder handlerWijs TsgcHTTPServer_Users toe aan Authentication.Users en de ingebouwde Basic-poort controleert zelf elke inloggegevens.
sgcREST-quickstart: TsgcHTTPServerStats schakelt de Metrics- en Health-endpoints in, GET /metrics geeft de requesttellers terug en GET /health geeft een JSON-status terug.
Drie regels setup, daarna antwoorden GET /metrics en GET /health vanzelf.

De volledige functiematrix

Voordat je koopt

Twee dingen die je eerst moet weten.

Wat sgcREST van je vraagt en wat niet. Beide antwoorden zijn kort en staan op deze pagina in plaats van in het kleine lettertje.

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 is zelfstandig

Zelfstandig, de sgcWebSockets Core-runtime is inbegrepen: de HTTP/TLS-server- en clientstack waarop de REST-server en elke OpenAPI-klasse draaien, en de JSON-laag die elk request en elke respons serialiseert. Eén installatieprogramma, en sgcREST draait op de standaard Indy-bibliotheek die met RAD Studio wordt meegeleverd.

Code-first OpenAPI vereist Delphi XE7+

Het genereren van een spec uit een geannoteerde Delphi-klasse steunt op de RTTI die met Delphi XE7 kwam, dus TsgcOpenAPICodeFirstScanner en TsgcOpenAPICodeFirstDispatcher compileren vanaf XE7. De REST-server, zijn companions en de spec-first-engine draaien op elke ondersteunde compiler, Delphi 7 tot 13.

Niets daartussen is een black box

sgcREST implementeert de REST- en OpenAPI-interfaces die je contract beschrijft, in plaats van een codegenerator te omhullen die je niet in de hand hebt. Requests, validatie en dispatch zijn volwaardige methoden en events, en elke licentie bevat de volledige broncode, zodat je alles in je eigen debugger kunt doorlopen.

Onderdeel van sgcWebSockets

Eén pakket van sgcWebSockets, afzonderlijk gelicentieerd.

sgcREST bundelt de REST- en OpenAPI-klassen van sgcWebSockets in één pakket. Elke licentie bevat alle zeven klassen, de sgcWebSockets Core-runtime, de volledige broncode, royaltyvrije distributie en 1 jaar updates.

Single

1 ontwikkelaarslicentie. Gebruik op één machine tegelijk.

€249

Team

2 ontwikkelaarslicenties. Gebruik op twee machines tegelijk.

€399

Site

Onbeperkt aantal ontwikkelaars. Alle bedrijfsmachines.

€649

Verlenging wordt aangeboden met 50% tot 70% korting. Al op sgcWebSockets? De REST-server zit in Professional en hoger en de Enterprise-editie bevat ook de OpenAPI-server, dus je editie dekt je mogelijk al, en de All-Access-bundel bevat alles. Het proefinstallatieprogramma is de All-Access-proefversie van sgcWebSockets, zodat je alle zeven klassen vandaag nog kunt evalueren.

Prijzen bekijken en bestellen
Referenties

Wat ontwikkelaars zeggen

Vertrouwd door Delphi-, C++ Builder-, Lazarus- en .NET-ontwikkelaars over de hele wereld.

Jullie sgcWebSockets-bibliotheek is erg handig en eenvoudig op te zetten. Ga zo door!
Simone Moretti Delphi-ontwikkelaar
sgcWebSockets is geweldig en jullie support is de beste!
Christian Meyer Oprichter & CTO
Heel erg bedankt voor jullie hulp en ondersteuning, ik ben dol op jullie componenten.
Mark Steinfeld CTO

REST-API's, OpenAPI-contracten, native code.

Een REST-server met CORS, statistieken, tenancy en gebruikers, een OpenAPI-server die spec-first of code-first werkt, en een OpenAPI-client voor elke beschreven API, met de sgcWebSockets Core-runtime meegeleverd en volledige broncode in de doos.

Meer van eSeGeCe

Andere producten van eSeGeCe

sgcREST is een van de componentbibliotheken van eSeGeCe voor Delphi, C++ Builder en .NET. Ze delen conventies, worden met volledige broncode geleverd en zijn royaltyvrij te distribueren.

sgcWebSockets

WebSocket, HTTP/2, MQTT, AMQP, WebRTC, AI en 30+ API-integraties voor Delphi, C++ Builder, Lazarus en .NET. Hier woont de Core-runtime, en de Enterprise-editie bevat ook de OpenAPI-server.

sgcHTTP

HTTP-server, HTTP/2-client, gRPC-client en clients voor Google Cloud Pub/Sub, Calendar en FCM, voor Delphi en C++ Builder. Standalone, met de sgcWebSockets Core runtime inbegrepen.

sgcAuth

OAuth2- en JWT-clientcomponenten plus WebAuthn-passkey-aanmelding, een logische combinatie met de gebruikersopslag van een REST-API.

sgcAI

AI-, LLM- en MCP-componenten voor Delphi en C++ Builder. Zeven LLM-providers achter één component, plus MCP, embeddings en spraak.

sgcMQ

Clientcomponenten voor MQTT, AMQP 0.9.1 en 1.0, Apache Kafka en STOMP voor Delphi en C++ Builder. Standalone, met de sgcWebSockets Core runtime inbegrepen.

sgcSocial

Telegram- en WhatsApp Business-clientcomponenten voor Delphi en C++ Builder. Standalone, met de sgcWebSockets Core runtime inbegrepen.

sgcOpenAPI

OpenAPI 3.x-parser, native Pascal-SDK-generator en 1.195+ kant-en-klare cloud-SDK's, voor offline codegeneratie in plaats van een runtime-client.

sgcHTML

HTML- en UI-componenten aan de serverkant op Bootstrap 5 en htmx voor Delphi, C++ Builder en .NET.

sgcQUIC

Pure QUIC-transport en een HTTP/3-client en -server, met WebTransport. Een add-on voor sgcWebSockets Enterprise.

sgcSign

XAdES, PAdES, CAdES en ASiC voor documenten, Authenticode, ClickOnce, NuGet en VSIX voor code.

sgcPDF

PDF-bestanden maken, bewerken, bekijken, ondertekenen, redigeren en valideren in pure Object Pascal, zonder DLL. Wordt los gelicentieerd.

sgcBiometrics

Windows Hello, vingerafdruksensoren en het Windows Biometric Framework voor Delphi en C++ Builder.

sgcIndy

Bijgewerkte Indy TCP/IP-componenten met moderne TLS, IPv6 en HTTP/2 voor Delphi 7 tot en met 13.

Laatste blogberichten

Bekijk alle berichten →

Je bekijkt nu de REST & OpenAPI-weergave van eSeGeCe.

Toon me een andere kant →
Niet-goed-geld-terug-garantie van 30 dagenNiet tevreden? Vraag binnen 30 dagen na aankoop een volledige terugbetaling aan. Bekijk het terugbetalingsbeleid