sgcREST REST API'leri, Delphi'de yerel. OpenAPI yerleşik.

İki iş, yedi sınıf. TsgcHTTPRESTServer, CORS, /metrics ve /health, çok kiracılılık ve bir kullanıcı deposuyla bir REST API yayımlar. Bir OpenAPI motoru, bir API'yi doğrudan bir OpenAPI 3.x sözleşmesinden sunar veya sözleşmeyi Delphi sınıfınızdan üretir; TsgcOpenAPI_Client ise OpenAPI ile tanımlanmış herhangi bir API'yi kullanır. sgcWebSockets Core çalışma zamanı dahildir.

İlk uç noktanızı birkaç satırda yayımlayın →
  • Delphi 7'den 13'e
  • C++ Builder
  • OpenAPI 3.x
  • CORS
  • /metrics ve /health
  • Çok kiracılılık
  • Tam kaynak kodu
  • 4Palet bileşeni: REST sunucusu, istatistikler, kiracılık ve kullanıcılar
  • 7Toplam sınıf: REST sunucu ailesi, OpenAPI motoru ve istemcisi
  • 4İstemci kimlik doğrulama şeması: Basic, bearer token, OAuth2 ve JWT
  • 2Yerleşik uç nokta: /metrics ve /health, ikisi de isteğe bağlı
  • 100%Her lisansla birlikte gelen kaynak kodu
Çalışırken izleyin

sgcREST'i iki dakikada görün.

REST sunucusunun seslendirmeli ve altyazılı bir tanıtımı: zaten bildiğiniz HTTP sunucusu ve bir REST API'nin sonunda hep ihtiyaç duyduğu dört şey. Oynat düğmesine basana kadar hiçbir şey indirilmez.

sgcREST hızlı başlangıç

Delphi ile CORS, canlı istatistikler, kiracılık ve kullanıcılarla bir REST API sunucusu oluşturun.

  1. Her şey devralınırTsgcHTTPRESTServer, TsgcHTTPServer'dan türer: Port, TLS, Authentication, oturumlar, sıkıştırma, iş parçacığı havuzu, güvenlik duvarı ve hız sınırlayıcı.
  2. Hepsi isteğe bağlıCORS varsayılan olarak kapalıdır, ServerStats ve Tenancy atanmamıştır. Bir yükseltmeden sonra hiçbir şey kendiliğinden açılmaz.
  3. CORSİzin verdiğiniz kaynakları, yöntemleri ve başlıkları listeleyin; sunucu OPTIONS ön kontrolünü sizin yerinize yanıtlar.
  4. Metrikler ve sağlıkTsgcHTTPServerStats atayın ve /metrics ile /health alın; ikisi de sunucunun kimlik doğrulama kapısının arkasındadır.
  5. Çok kiracılılıkHer istek, ana bilgisayardan, yoldan, bir başlıktan veya bir JWT claim'inden bir kiracıya eşlenir. İşleyiciler yalnızca Tenant'ı okur.
  6. Hazır bir kullanıcı deposuHesaplar, tuzlanmış parola özetleri ve roller. Yerleşik Basic kapısı her kimlik bilgisini buna karşı çözümler.
Kutuda neler var

Dört palet bileşeni, yalnızca kodla kullanılan üç sınıf.

REST sunucusu ve üç yardımcısı, SGC REST palet sayfasındaki görsel olmayan bileşenlerdir. OpenAPI sunucu motoru ve OpenAPI istemcisi sgcHTTP_OpenAPI_* birimlerinde bulunur: birini oluşturun, yapılandırın ve yöntemlerini doğrudan çağırın.

REST Sunucusu · bir sunucu, üç yardımcı

Görüntüle →
  • TsgcHTTPRESTServer
  • TsgcHTTPServerStats
  • TsgcHTTPServer_Tenancy
  • TsgcHTTPServer_Users
  • CORSOptions
  • ServerStats
  • Tenancy
  • Tenant

TsgcHTTPRESTServer, standart TsgcHTTPServer'ı CORSOptions üzerinden CORS işlemesiyle ve isteğe bağlı yardımcılar için iki özellikle genişletir. TsgcHTTPServerStats, her isteği durum sınıfına göre sayar, gecikmenin en küçük, ortalama ve en büyük değerini izler ve Prometheus biçiminde bir /metrics uç noktası ile JSON biçiminde bir /health uç noktası sunar; rota başına döküm için GetEndpointStats vardır. TsgcHTTPServer_Tenancy, çağıranın kiracısını ana bilgisayar adından, bir yol bölümünden, bir istek başlığından veya bir JWT claim'inden çözer ve Tenant, sunulan istek için sonucu okur. TsgcHTTPServer_Users, hesapların, tuzlanmış parola özetlerinin ve rollerin bağımsız bir deposudur.

OpenAPI Sunucusu · spec-first veya code-first

Görüntüle →
  • TsgcOpenAPIRouteTable
  • TsgcOpenAPIServerContext
  • TsgcOpenAPIServerHandler
  • TsgcOpenAPIJSONValidator
  • TsgcOpenAPICodeFirstScanner
  • RespondJSON

Bir OpenAPI 3.0 veya 3.1 belgesi yükleyin; rota tablosu paths bölümünden oluşturulur. Eşleşen bir istek, tipli yol ve sorgu parametreleri, gövde yardımcıları ve RespondJSON/RespondError ile birlikte bir TsgcOpenAPIServerContext olarak gelir; doğrulayıcı da gövdeleri, sorgu ve yol parametrelerini belirtimin bildirdiği JSON Şemalarına göre denetler. Code-first, doğruluk kaynağını tersine çevirir: sade bir Delphi sınıfını açıklayın, tarayıcı belirtimi üretsin.

OpenAPI İstemcisi · tanımlanmış herhangi bir API

Görüntüle →
  • TsgcOpenAPI_Client
  • SetBaseURL
  • HTTP_REQUEST
  • HTTP_REQUEST_Async
  • Authentication
  • OnBeforeRequest
  • OnUpload
  • OnDownload

Bir OpenAPI belgesinin tanımladığı her uç nokta için genel bir çalışma zamanı istemcisi ve üretilen SDK'ların arkasındaki temel sınıf. Authentication, Basic kimlik doğrulamasını ve bearer token'ları, ayrıca genel OAuth2 ve JWT'yi kapsar; HTTP_REQUEST çağrıyı taşır, OnBeforeRequest, OnUpload ve OnDownload ise onu izler.

Tüm bileşenleri ve özellikleri görün

Nasıl çalışır

Bir sunucu, birleştirilebilir yardımcılar.

Yedi sınıf, role göre net biçimde ayrılır. REST sunucusu HTTP trafiğini taşır, üç yardımcı bir üretim API'sinin ihtiyaç duyduklarını ekler ve OpenAPI motoru, yazılmış ya da üretilmiş bir belirtimi çalışan bir rota tablosuna dönüştürür.

Ek özelliklere sahip bir TsgcHTTPServer

TsgcHTTPRESTServer, her sgcWebSockets sürümüyle gelen sade HTTP sunucusunun bağlamalarını, TLS ve HTTP/2 işlemesini devralır; CORS ile yardımcı özellikleri ekler, böylece bir REST API ayrı bir çatı olmadan metrikler, sağlık denetimleri ve çok kiracılılık kazanır.

Yardımcılar yerleşik değil

İstatistikler, kiracılık ve kullanıcılar ayrı bileşenlerdir. Belirli bir API'nin ihtiyaç duyduklarını bağlayın, gerisini dışarıda bırakın. Bağlanmış ama yapılandırılmamış bir yardımcıyı denetlemek sunucuya hiçbir maliyet getirmez.

Spec-first ve code-first, tek rota tablosu

OpenAPI belgesi yüklediğiniz bir dosyadan ya da öznitelikli bir sınıfı tarayan TsgcOpenAPICodeFirstScanner.GenerateSpec'ten gelsin, aynı rota tablosu ve istek bağlamı ikisine de hizmet eder.

Belirtimin ihtiyaç duyduğu her geri çağırma

Doğrulama ve kimlik doğrulama olayları, ayrıştırılmış TsgcOpenAPIServerContext'i PathParams, QueryParams ve RespondJSON ile birlikte alır; OnException ise işleyici hatalarını tele ulaşmadan yakalar, böylece bir çağrının neden kabul edildiği veya reddedildiği sizden gizlenmez.

Altı platform, eklenti yok

Yedi sınıfın tamamı RAD Studio ile gelen standart Indy kitaplığı üzerinde çalışır: Windows Win32 ve Win64, Linux64, macOS, iOS ve Android. Delphi 7'den RAD Studio 13'e ve C++ Builder'da.

Core çalışma zamanı kutuda

sgcWebSockets Core çalışma zamanı, REST sunucusunun ve her OpenAPI sınıfının üzerinde çalıştığı HTTP/TLS yığınını ve her isteği ve yanıtı serileştiren JSON katmanını sağlar. Tam kaynağı da diğer her şey gibi paketin parçasıdır.

Hızlı başlangıç

Bir uç nokta yayımlayın, bir sözleşme yayımlayın veya birini çağırın.

REST sunucusu isteği size doğrudan verir. OpenAPI sunucusu size doğrulanmış, önceden eşleştirilmiş bir işlem verir. OpenAPI istemcisi başkasının uç noktalarını çağırır. Üçü de Delphi 7'den 13'e ve C++ Builder'da aynı şekilde derlenir.

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, sizin için yanıtlanırCORSOptions'ı etkinleştirin, izin verdiğiniz kaynakları, yöntemleri ve başlıkları listeleyin; sunucu OPTIONS ön kontrolünü yanıtlar. Bu, işleyicilerinize ve DocumentRoot'tan sunulan dosyalara uygulanır.
  2. Tek atamada istatistikler/metrics ve /health için TsgcHTTPServerStats'ı ServerStats'a atayın. Atanmamış bırakırsanız hiç sayaç tutulmaz.
  3. Kodunuz çalışmadan önce kiracılıkTsgcHTTPServer_Tenancy atayın; her istek önce bir kiracıya eşlenir. İşleyicileriniz yalnızca Tenant'ı okur.
  4. İşleyici olmadan kullanıcılarTsgcHTTPServer_Users'ı Authentication.Users'a atayın; yerleşik Basic kapısı her kimlik bilgisini kendiliğinden çözümler.
sgcREST hızlı başlangıcı: TsgcHTTPServerStats, Metrics ve Health uç noktalarını etkinleştirir; GET /metrics istek sayaçlarını, GET /health ise bir JSON durumunu döndürür.
Üç satırlık kurulum, ardından GET /metrics ve GET /health kendiliğinden yanıt verir.

Tam özellik matrisi

Satın almadan önce

Önce bilmeye değer iki şey.

sgcREST'in sizden ne istediği ve ne istemediği. İki yanıt da kısadır ve ikisi de küçük harflerle yazılmış notlarda değil, bu sayfadadır.

bir REST API yayımlayın
TsgcHTTPRESTServer        CORS, ServerStats, Tenancy
TsgcHTTPServerStats       /metrics ve /health
TsgcHTTPServer_Tenancy    ana bilgisayar, yol, başlık, JWT claim
TsgcHTTPServer_Users      hesaplar, özetler, roller

bir OpenAPI 3.x sözleşmesinden yayımlayın
route table + context     spec-first, Delphi 7'den 13'e
code-first scanner        öznitelikli sınıf, XE7 ve üzeri

bir API'yi kullanın
TsgcOpenAPI_Client        OpenAPI ile tanımlanmış herhangi bir API

TsgcHTTPRESTServer bir TsgcHTTPServer
  türevidir, bu yüzden zaten kullandığınız
  Port, TLS ve Authentication ile yayımlar.

sgcREST kendi kendine yeterlidir

Bağımsız bir üründür, sgcWebSockets Core çalışma zamanı dahildir: REST sunucusunun ve her OpenAPI sınıfının üzerinde çalıştığı HTTP/TLS sunucu ve istemci yığını ile her isteği ve yanıtı serileştiren JSON katmanı. Tek kurulum paketi, ve sgcREST RAD Studio ile gelen standart Indy kitaplığı üzerinde çalışır.

Code-first OpenAPI, Delphi XE7+ gerektirir

Öznitelikli bir Delphi sınıfından belirtim üretmek, Delphi XE7 ile gelen RTTI'ya dayanır; bu yüzden TsgcOpenAPICodeFirstScanner ve TsgcOpenAPICodeFirstDispatcher XE7 ve üzerinde derlenir. REST sunucusu, yardımcıları ve spec-first motoru, desteklenen her derleyicide çalışır: Delphi 7'den 13'e.

Aradaki hiçbir şey kara kutu değildir

sgcREST, denetleyemediğiniz bir kod üreticisini sarmalamak yerine sözleşmenizin tanımladığı REST ve OpenAPI yüzeylerini uygular. İstekler, doğrulama ve yönlendirme birinci sınıf yöntemler ve olaylardır; tam kaynak kodu her lisansla birlikte gelir, böylece hepsi kendi hata ayıklayıcınızda adım adım izlenebilir.

sgcWebSockets'in bir parçası

sgcWebSockets'in tek bir paketi, kendi başına lisanslanır.

sgcREST, sgcWebSockets'in REST ve OpenAPI sınıflarını tek bir pakette toplar. Her lisans, yedi sınıfın tamamını, sgcWebSockets Core çalışma zamanını, tam kaynak kodunu, telifsiz yeniden dağıtımı ve 1 yıllık güncellemeleri içerir.

Single

1 geliştirici lisansı. Aynı anda tek bir makinede kullanın.

€249

Team

2 geliştirici lisansı. Aynı anda iki makinede kullanın.

€399

Site

Sınırsız geliştirici. Şirketteki tüm makineler.

€649

Yenileme, 50% ile 70% arasında bir indirimle sunulur. Zaten sgcWebSockets kullanıyor musunuz? REST sunucusu Professional ve üzeri sürümlerle gelir, Enterprise sürümü OpenAPI sunucusunu da içerir; yani sürümünüz sizi zaten kapsıyor olabilir ve All-Access paketi her şeyi içerir. Deneme kurulum paketi sgcWebSockets All-Access denemesidir, bu yüzden yedi sınıfın tamamı bugün değerlendirilebilir.

Fiyatlandırmayı görüntüleyin ve sipariş verin
Referanslar

Geliştiriciler Ne Diyor

Dünya çapında Delphi, C++ Builder, Lazarus ve .NET geliştiricilerinin güvendiği.

sgcWebSockets kütüphaneniz çok kullanışlı ve kurulumu kolay. İyi çalışmalarınızı sürdürün!
Simone Moretti Delphi Geliştiricisi
sgcWebSockets harika ve desteğiniz en iyisi!
Christian Meyer Kurucu ve CTO
Yardımınız ve desteğiniz için çok teşekkürler, bileşenlerinize bayılıyorum.
Mark Steinfeld CTO

REST API'leri, OpenAPI sözleşmeleri, yerel kod.

CORS, istatistikler, kiracılık ve kullanıcılarla bir REST sunucusu, spec-first veya code-first çalışan bir OpenAPI sunucusu ve tanımlanmış her API için bir OpenAPI istemcisi; sgcWebSockets Core çalışma zamanı pakete dahil ve kutuda tam kaynak kodu.

eSeGeCe'den daha fazlası

eSeGeCe'nin Diğer Ürünleri

sgcREST, Delphi, C++ Builder ve .NET için eSeGeCe bileşen kitaplıklarından biridir. Aynı kuralları paylaşırlar, tam kaynak koduyla gelirler ve telifsiz dağıtılırlar.

sgcWebSockets

Delphi, C++ Builder, Lazarus ve .NET için WebSocket, HTTP/2, MQTT, AMQP, WebRTC, yapay zeka ve 30+ API entegrasyonu. Core çalışma zamanı burada yaşar ve Enterprise sürümü OpenAPI sunucusunu da içerir.

sgcHTTP

Delphi ve C++ Builder için HTTP sunucusu, HTTP/2 istemcisi, gRPC istemcisi ve Google Cloud Pub/Sub, Calendar ve FCM istemcileri. Bağımsız bir üründür, sgcWebSockets Core çalışma zamanı pakete dahildir.

sgcAuth

OAuth2 ve JWT istemci bileşenleri ile WebAuthn passkey oturum açma; bir REST API'nin kullanıcı deposuyla doğal bir eşleşme.

sgcAI

Delphi ve C++ Builder için yapay zeka, LLM ve MCP bileşenleri. Tek bir bileşenin arkasında yedi LLM sağlayıcısı, ayrıca MCP, embedding'ler ve konuşma.

sgcMQ

Delphi ve C++ Builder için MQTT, AMQP 0.9.1 ve 1.0, Apache Kafka ve STOMP istemci bileşenleri. Bağımsız bir üründür, sgcWebSockets Core çalışma zamanı pakete dahildir.

sgcSocial

Delphi ve C++ Builder için Telegram ve WhatsApp Business istemci bileşenleri. Bağımsız bir üründür, sgcWebSockets Core çalışma zamanı pakete dahildir.

sgcOpenAPI

OpenAPI 3.x ayrıştırıcısı, yerel Pascal SDK oluşturucusu ve 1.195+ hazır bulut SDK'sı; bir çalışma zamanı istemcisi değil, çevrimdışı kod üretimi içindir.

sgcHTML

Delphi, C++ Builder ve .NET için Bootstrap 5 ve htmx üzerinde sunucu tarafı HTML ve arayüz bileşenleri.

sgcQUIC

Ham QUIC taşıması ile WebTransport destekli bir HTTP/3 istemcisi ve sunucusu. sgcWebSockets Enterprise için bir eklenti.

sgcSign

Belgeler için XAdES, PAdES, CAdES ve ASiC; kod için Authenticode, ClickOnce, NuGet ve VSIX.

sgcPDF

Dağıtılacak DLL olmadan, saf Object Pascal ile PDF dosyaları oluşturun, düzenleyin, görüntüleyin, imzalayın, karartın ve doğrulayın. Kendi başına lisanslanır.

sgcBiometrics

Delphi ve C++ Builder için Windows Hello, parmak izi sensörleri ve Windows Biometric Framework.

sgcIndy

Delphi 7'den 13'e kadar modern TLS, IPv6 ve HTTP/2 destekli güncellenmiş Indy TCP/IP bileşenleri.

Blogdan Son Yazılar

Tüm yazıları görüntüleyin →

eSeGeCe'nin REST ve OpenAPI görünümünü görüyorsunuz.

Bana başka bir açı gösterin →
30 Günlük Para İade GarantisiMemnun kalmadınız mı? Satın alımdan sonraki 30 gün içinde tam para iadesi talep edin. İade politikasına bakın