sgcREST REST API, Delphi에서 네이티브로. OpenAPI 내장.

작업은 두 가지, 클래스는 일곱 개. TsgcHTTPRESTServer는 CORS, /metrics와 /health, 멀티테넌시, 사용자 저장소를 갖춘 REST API를 게시해요. OpenAPI 엔진은 OpenAPI 3.x 계약에서 바로 API를 제공하거나 Delphi 클래스에서 계약을 생성하고, TsgcOpenAPI_Client는 OpenAPI로 설명된 모든 API를 호출해요. sgcWebSockets Core 런타임이 포함돼 있어요.

몇 줄로 첫 엔드포인트 게시하기 →
  • Delphi 7~13
  • C++ Builder
  • OpenAPI 3.x
  • CORS
  • /metrics와 /health
  • 멀티테넌시
  • 전체 소스 코드
  • 4팔레트 컴포넌트: REST 서버, 통계, 테넌시, 사용자
  • 7전체 클래스: REST 서버 계열, OpenAPI 엔진, 클라이언트
  • 4클라이언트 인증 방식: Basic, 베어러 토큰, OAuth2, JWT
  • 2내장 엔드포인트 /metrics와 /health, 둘 다 선택 사항
  • 100%모든 라이선스에 소스 코드 포함
직접 확인하기

2분 만에 보는 sgcREST.

해설과 자막이 있는 REST 서버 투어예요. 이미 익숙한 HTTP 서버에, REST API가 결국 필요로 하는 네 가지를 더했어요. 재생을 누르기 전에는 아무것도 다운로드되지 않아요.

sgcREST 퀵스타트

CORS, 실시간 통계, 테넌시, 사용자를 갖춘 REST API 서버를 Delphi로 만들어 보세요.

  1. 모두 상속TsgcHTTPRESTServer는 TsgcHTTPServer를 상속해요: Port, TLS, Authentication, 세션, 압축, 스레드 풀, 방화벽, 속도 제한기까지 그대로예요.
  2. 모두 선택 사항CORS는 기본적으로 꺼져 있고, ServerStats와 Tenancy는 할당되지 않아요. 업그레이드 후에 저절로 켜지는 기능은 없어요.
  3. CORS허용할 오리진, 메서드, 헤더를 나열하면 서버가 OPTIONS 프리플라이트에 대신 응답해요.
  4. 메트릭과 상태 확인TsgcHTTPServerStats를 할당하면 /metrics와 /health를 쓸 수 있어요. 둘 다 서버의 인증 게이트 뒤에 있어요.
  5. 멀티테넌시모든 요청은 호스트, 경로, 헤더 또는 JWT 클레임으로 테넌트에 매핑돼요. 핸들러는 Tenant만 읽으면 돼요.
  6. 바로 쓰는 사용자 저장소계정, 솔트 처리된 비밀번호 해시, 역할을 지원해요. 내장 Basic 게이트가 모든 자격 증명을 여기서 확인해요.
구성 내용

팔레트 컴포넌트 4개, 코드 전용 클래스 3개.

REST 서버와 동반 컴포넌트 3개는 SGC REST 팔레트 페이지의 비시각 컴포넌트예요. OpenAPI 서버 엔진과 OpenAPI 클라이언트는 다음 유닛에 있어요: sgcHTTP_OpenAPI_* 유닛에서 객체를 만들고, 설정한 다음 메서드를 직접 호출하세요.

REST 서버 · 서버 하나, 동반 컴포넌트 셋

보기 →
  • TsgcHTTPRESTServer
  • TsgcHTTPServerStats
  • TsgcHTTPServer_Tenancy
  • TsgcHTTPServer_Users
  • CORSOptions
  • ServerStats
  • Tenancy
  • Tenant

TsgcHTTPRESTServer는 표준 TsgcHTTPServer를 확장해요. CORS 처리는 CORSOptions로 설정하고, 선택적 동반 컴포넌트를 위한 속성이 두 개 더 있어요. TsgcHTTPServerStats는 모든 요청을 상태 클래스별로 집계하고 지연 시간의 최솟값, 평균, 최댓값을 추적하며, Prometheus 형식의 /metrics 엔드포인트와 JSON /health 엔드포인트를 제공해요. 경로별 세부 내역은 GetEndpointStats로 확인할 수 있어요. TsgcHTTPServer_Tenancy는 호스트 이름, 경로 세그먼트, 요청 헤더 또는 JWT 클레임에서 호출자의 테넌트를 결정하고, Tenant는 처리 중인 요청에 대한 그 결과를 읽어요. TsgcHTTPServer_Users는 계정, 솔트 처리된 비밀번호 해시, 역할을 담는 독립형 저장소예요.

OpenAPI 서버 · 스펙 우선 또는 코드 퍼스트

보기 →
  • TsgcOpenAPIRouteTable
  • TsgcOpenAPIServerContext
  • TsgcOpenAPIServerHandler
  • TsgcOpenAPIJSONValidator
  • TsgcOpenAPICodeFirstScanner
  • RespondJSON

OpenAPI 3.0 또는 3.1 문서를 불러오면 paths 섹션으로 라우트 테이블이 만들어져요. 일치한 요청은 TsgcOpenAPIServerContext로 전달되며, 형식이 지정된 경로 및 쿼리 파라미터, 본문 도우미, RespondJSON/RespondError를 제공해요. 검증기는 본문, 쿼리, 경로 파라미터를 스펙이 선언한 JSON Schema로 검사해요. 코드 퍼스트는 기준을 뒤집어요. 일반 Delphi 클래스에 어노테이션을 달면 스캐너가 스펙을 생성해요.

OpenAPI 클라이언트 · 설명된 모든 API

보기 →
  • TsgcOpenAPI_Client
  • SetBaseURL
  • HTTP_REQUEST
  • HTTP_REQUEST_Async
  • Authentication
  • OnBeforeRequest
  • OnUpload
  • OnDownload

OpenAPI 문서가 설명하는 모든 엔드포인트용 범용 런타임 클라이언트이며, 생성된 SDK의 기반 클래스예요. Authentication는 Basic 인증과 베어러 토큰, 범용 OAuth2와 JWT를 지원하고, HTTP_REQUEST가 호출을 수행하며, OnBeforeRequest, OnUpload 및 OnDownload가 이를 추적해요.

모든 컴포넌트와 속성 보기

작동 방식

서버 하나, 조합 가능한 동반 컴포넌트.

일곱 개 클래스는 역할에 따라 깔끔하게 나뉘어요. REST 서버가 HTTP 트래픽을 담당하고, 동반 컴포넌트 3개가 운영 환경 API에 필요한 기능을 더하며, OpenAPI 엔진이 직접 작성했거나 생성된 스펙을 동작하는 라우트 테이블로 바꿔 줘요.

기능이 더해진 TsgcHTTPServer

TsgcHTTPRESTServer는 모든 sgcWebSockets 에디션에 포함된 일반 HTTP 서버의 바인딩, TLS, HTTP/2 처리를 상속하고 CORS와 동반 컴포넌트 속성을 더해요. 그래서 별도의 프레임워크 없이도 REST API에서 메트릭, 상태 확인, 멀티테넌시를 쓸 수 있어요.

내장이 아니라 동반 컴포넌트

통계, 테넌시, 사용자는 각각 별도의 컴포넌트예요. API에 필요한 것만 연결하고 나머지는 빼세요. 연결했지만 구성하지 않은 동반 컴포넌트는 서버가 확인하는 데 비용이 들지 않아요.

스펙 우선과 코드 퍼스트, 라우트 테이블은 하나

OpenAPI 문서가 불러온 파일에서 오든 TsgcOpenAPICodeFirstScanner.GenerateSpec가 어노테이션이 달린 클래스를 스캔해 만든 것이든, 같은 라우트 테이블과 요청 컨텍스트가 둘 다 처리해요.

스펙이 필요로 하는 모든 콜백

검증과 인증 이벤트는 파싱된 TsgcOpenAPIServerContext를 받아요. 여기에는 PathParams, QueryParams, RespondJSON이 들어 있어요. 그리고 OnException이벤트는 핸들러 오류를 네트워크로 나가기 전에 잡아내므로, 호출이 수락되거나 거부된 이유가 어느 것도 숨겨지지 않아요.

애드온 없이 6개 플랫폼

일곱 개 클래스 모두 RAD Studio에 포함된 표준 Indy 라이브러리에서 실행돼요: Windows Win32와 Win64, Linux64, macOS, iOS, Android. Delphi 7부터 RAD Studio 13, 그리고 C++ Builder까지 지원해요.

Core 런타임이 포함돼 있어요

sgcWebSockets Core 런타임은 REST 서버와 모든 OpenAPI 클래스가 동작하는 HTTP/TLS 스택과, 모든 요청과 응답을 직렬화하는 JSON 계층을 제공해요. 전체 소스도 다른 것과 똑같이 패키지에 들어 있어요.

퀵스타트

엔드포인트를 게시하거나, 계약을 게시하거나, 호출하세요.

REST 서버는 요청을 그대로 전달해요. OpenAPI 서버는 검증을 마치고 이미 매칭된 작업을 전달해요. OpenAPI 클라이언트는 다른 곳의 엔드포인트를 호출해요. 셋 모두 Delphi 7~13과 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를 대신 처리CORSOptions를 활성화하고 허용할 오리진, 메서드, 헤더를 나열하면 서버가 OPTIONS 프리플라이트에 응답해요. 핸들러와 DocumentRoot에서 제공하는 파일 모두에 적용돼요.
  2. 할당 한 번으로 통계ServerStats에 TsgcHTTPServerStats를 할당하면 /metrics와 /health를 쓸 수 있어요. 할당하지 않으면 카운터를 전혀 유지하지 않아요.
  3. 코드가 실행되기 전에 테넌시TsgcHTTPServer_Tenancy를 할당하면 모든 요청이 먼저 테넌트에 매핑돼요. 핸들러는 Tenant만 읽으면 돼요.
  4. 핸들러 없이 사용자 관리Authentication.Users에 TsgcHTTPServer_Users를 할당하면 내장 Basic 게이트가 모든 자격 증명을 알아서 확인해요.
sgcREST 퀵스타트: TsgcHTTPServerStats가 Metrics와 Health 엔드포인트를 활성화하고, GET /metrics는 요청 카운터를, GET /health는 JSON 상태를 반환하는 Delphi 코드
설정은 세 줄이면 되고, 이후 GET /metrics와 GET /health가 알아서 응답해요.

전체 기능 매트릭스

구매 전에

먼저 알아 두면 좋은 두 가지

sgcREST에서 필요한 것과 필요하지 않은 것을 알려 드려요. 두 가지 답 모두 짧고, 작은 글씨가 아니라 이 페이지에 적혀 있어요.

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는 자체 완결형이에요

독립형이며 sgcWebSockets Core 런타임이 포함돼 있어요. REST 서버와 모든 OpenAPI 클래스가 동작하는 HTTP/TLS 서버 및 클라이언트 스택과, 모든 요청과 응답을 직렬화하는 JSON 계층이에요. 설치 프로그램 하나면 되고, sgcREST는 RAD Studio에 포함된 표준 Indy 라이브러리에서 실행돼요.

코드 퍼스트 OpenAPI에는 Delphi XE7 이상이 필요해요

어노테이션이 달린 Delphi 클래스에서 스펙을 생성하려면 Delphi XE7에 도입된 RTTI가 필요해서 TsgcOpenAPICodeFirstScanner와 TsgcOpenAPICodeFirstDispatcher는 XE7 이상에서 컴파일돼요. REST 서버, 동반 컴포넌트, 스펙 우선 엔진은 지원하는 모든 컴파일러, 즉 Delphi 7~13에서 실행돼요.

중간에 블랙박스는 없어요

sgcREST는 제어할 수 없는 코드 생성기를 감싸는 대신, 계약이 설명하는 REST와 OpenAPI 영역을 직접 구현해요. 요청, 검증, 디스패치가 모두 일급 메서드와 이벤트이고 모든 라이선스에 전체 소스 코드가 포함되므로, 전부 내 디버거에서 한 단계씩 따라가 볼 수 있어요.

sgcWebSockets의 일부

sgcWebSockets의 패키지 하나이며 별도로 라이선스돼요.

sgcREST는 sgcWebSockets의 REST 및 OpenAPI 클래스를 하나의 패키지로 묶었어요. 모든 라이선스에 일곱 개 클래스 전체, sgcWebSockets Core 런타임, 전체 소스 코드, 로열티 없는 재배포, 1년간의 업데이트가 포함돼요.

Single

개발자 1명 라이선스예요. 한 번에 한 대의 컴퓨터에서 사용해요.

€249

Team

개발자 2명 라이선스예요. 한 번에 두 대의 컴퓨터에서 사용해요.

€399

Site

개발자 수 제한이 없어요. 회사의 모든 컴퓨터에서 사용해요.

€649

갱신 시 50% to 70%까지 할인을 제공해요. 이미 sgcWebSockets를 쓰고 있나요? REST 서버는 Professional 이상 에디션에 포함되고 Enterprise 에디션에는 OpenAPI 서버도 포함되므로, 이미 쓰고 계신 에디션이 해당될 수 있어요. 또한 All-Access 번들에는 모든 것이 들어 있어요. 체험판 설치 프로그램은 sgcWebSockets All-Access 체험판이라서 일곱 개 클래스를 모두 지금 바로 평가할 수 있어요.

가격 보기 및 주문
고객 후기

개발자들의 평가

전 세계 Delphi, C++ Builder, Lazarus 및 .NET 개발자가 신뢰해요.

sgcWebSockets 라이브러리는 정말 유용하고 설정하기 쉬워요. 앞으로도 좋은 작업 부탁드려요!
Simone Moretti Delphi 개발자
sgcWebSockets는 정말 훌륭하고 지원도 최고예요!
Christian Meyer 창립자 및 CTO
도움과 지원에 정말 감사드려요. 컴포넌트가 너무 마음에 들어요.
Mark Steinfeld CTO

REST API와 OpenAPI 계약, 네이티브 코드로.

CORS, 통계, 테넌시, 사용자를 갖춘 REST 서버, 스펙 우선 또는 코드 퍼스트로 동작하는 OpenAPI 서버, 설명된 모든 API를 위한 OpenAPI 클라이언트를 제공해요. sgcWebSockets Core 런타임이 포함되고 전체 소스 코드가 들어 있어요.

eSeGeCe의 다른 제품

eSeGeCe의 다른 제품

sgcREST는 Delphi, C++ Builder, .NET용 eSeGeCe 컴포넌트 라이브러리 중 하나예요. 규칙을 공유하고, 전체 소스와 함께 제공되며, 로열티 없이 배포할 수 있어요.

sgcWebSockets

WebSocket, HTTP/2, MQTT, AMQP, WebRTC, AI와 30개 이상의 API 연동을 Delphi, C++ Builder, Lazarus, .NET용으로 제공해요. Core 런타임이 있는 곳이며, Enterprise 에디션에는 OpenAPI 서버도 포함돼요.

sgcHTTP

Delphi와 C++ Builder를 위한 HTTP 서버, HTTP/2 클라이언트, gRPC 클라이언트, 그리고 Google Cloud Pub/Sub, Calendar, FCM 클라이언트를 제공해요. 단독 제품이며 sgcWebSockets Core 런타임이 함께 제공돼요.

sgcAuth

OAuth2 및 JWT 클라이언트 컴포넌트와 WebAuthn 패스키 로그인이에요. REST API의 사용자 저장소와 잘 어울려요.

sgcAI

Delphi와 C++ Builder를 위한 AI, LLM, MCP 컴포넌트예요. 컴포넌트 하나로 일곱 개 LLM 제공업체를 사용하고, MCP와 임베딩, 음성까지 지원해요.

sgcMQ

Delphi와 C++ Builder를 위한 MQTT, AMQP 0.9.1과 1.0, Apache Kafka, STOMP 클라이언트 컴포넌트예요. 단독 제품이며 sgcWebSockets Core 런타임이 함께 제공돼요.

sgcSocial

Delphi와 C++ Builder를 위한 Telegram 및 WhatsApp Business 클라이언트 컴포넌트예요. 단독 제품이며 sgcWebSockets Core 런타임이 번들로 포함돼요.

sgcOpenAPI

OpenAPI 3.x 파서, 네이티브 Pascal SDK 생성기, 사전 빌드된 1,195개 이상의 클라우드 SDK를 제공해요. 런타임 클라이언트가 아니라 오프라인 코드 생성용이에요.

sgcHTML

Delphi, C++ Builder, .NET용 Bootstrap 5와 htmx 기반 서버 측 HTML 및 UI 컴포넌트예요.

sgcQUIC

Raw QUIC 전송과 HTTP/3 클라이언트 및 서버, WebTransport를 제공해요. sgcWebSockets Enterprise의 애드온이에요.

sgcSign

문서용 XAdES, PAdES, CAdES, ASiC와 코드용 Authenticode, ClickOnce, NuGet, VSIX를 제공해요.

sgcPDF

PDF 파일을 만들고, 편집하고, 보고, 서명하고, 가리고, 검증하는 기능을 순수 Object Pascal로 제공해요. 배포할 DLL이 없고, 별도로 라이선스돼요.

sgcBiometrics

Delphi와 C++ Builder를 위한 Windows Hello, 지문 센서, Windows Biometric Framework를 제공해요.

sgcIndy

Delphi 7부터 13까지 최신 TLS, IPv6, HTTP/2를 갖춘 업데이트된 Indy TCP/IP 컴포넌트예요.

블로그 최신 소식

모든 글 보기 →

지금 eSeGeCe의 REST & OpenAPI 관점을 보고 있어요.

다른 관점 보기 →
30일 환불 보장만족하지 않으세요? 구매 후 30일 이내에 전액 환불을 요청하세요. 환불 정책 보기