sgcREST: Delphi & C++ Builder를 위한 REST API 서버 & OpenAPI 컴포넌트
단독 제품 REST Server & OpenAPI

sgcREST: Delphi & C++ Builder를 위한 REST API 서버 & OpenAPI 컴포넌트

두 가지 역할을 일곱 개의 클래스가 담당합니다. TsgcHTTPRESTServer는 CORS 처리와 세 개의 연결 가능한 컴패니언, 즉 요청 통계, 멀티테넌시, 로컬 사용자 저장소를 갖춘 REST API 서버입니다. 그 옆에는 OpenAPI 엔진이 있어 스펙에서 곧바로 API를 제공하거나 애트리뷰트가 지정된 Delphi 클래스에서 그 스펙을 생성하며, TsgcOpenAPI_Client는 OpenAPI로 설명된 모든 API를 사용합니다. sgcREST는 단독 제품으로, 모든 클래스가 기반으로 삼는 sgcWebSockets Core 런타임을 함께 포함합니다.

전체 소스 코드
Delphi 7부터 13까지 & C++ Builder
번들 런타임 sgcWebSockets Core 모든 클래스를 뒷받침하는 HTTP, TLS, JSON 런타임
REST 서버 TsgcHTTPRESTServer
OpenAPI TsgcOpenAPI_Client
4 팔레트 컴포넌트 REST 서버, 통계, 테넌시 & 사용자, 팔레트의 한 페이지
7 전체 클래스 REST 서버 계열, OpenAPI 서버 엔진 & OpenAPI 클라이언트
4 클라이언트 인증 방식 Basic 인증, 베어러 토큰, 범용 OAuth2, JWT가 내장되어 있습니다
100% 포함된 소스 코드 일곱 개의 클래스와 번들로 포함된 Core 런타임
12 업데이트 개월 수 라이선스가 유효한 동안 발행되는 모든 릴리스

먼저 알아 두면 좋은 두 가지

sgcREST에 무엇이 필요한지, 그리고 무엇이 필요하지 않은지. 두 답 모두 간단합니다.

sgcREST는 자체 완결형 제품입니다

단독 제품으로 sgcWebSockets Core 런타임이 포함되어 있습니다. REST 서버와 모든 OpenAPI 클래스가 동작하는 HTTP/TLS 서버 및 클라이언트 스택과, 모든 요청과 응답을 직렬화하는 JSON 계층까지 모두 포함됩니다. 하나의 SKU, 하나의 설치 프로그램이며, sgcREST는 RAD Studio에 기본으로 포함된 표준 Indy 라이브러리에서 동작합니다.

모든 라이선스에 전체 소스 코드가 함께 제공되므로, REST 서버와 그 컴패니언, OpenAPI 엔진이 바이너리 속으로 사라지지 않고 직접 디버거로 단계별 추적이 가능합니다.

버전 요구 사항 1가지

코드 우선 OpenAPI에는 Delphi XE7 이상이 필요합니다

애트리뷰트가 지정된 Delphi 클래스에서 OpenAPI 스펙을 생성하려면 Delphi XE7에서 도입된 RTTI가 필요하므로, TsgcOpenAPICodeFirstScannerTsgcOpenAPICodeFirstDispatcher는 XE7 이상에서 컴파일됩니다. REST 서버와 그 컴패니언, 그리고 이미 보유한 JSON이나 YAML 문서로 라우팅하는 스펙 우선 OpenAPI 엔진은 지원되는 모든 컴파일러, 즉 Delphi 7부터 13까지 동작합니다.

시작할 OpenAPI 문서가 없으신가요? Delphi 클래스를 먼저 작성하고 스캐너가 문서를 생성하도록 하면 됩니다. XE7 이상에서 코드 우선 방식이 하는 일이 바로 이것입니다.

네 개의 팔레트 컴포넌트, 세 개의 코드 전용 클래스

REST 서버와 그 세 컴패니언은 sgcHTTP_REST_Server* 유닛에 선언된 SGC REST 팔레트 페이지의 비시각 컴포넌트입니다. TsgcHTTPRESTServer를 폼에 올리거나 코드에서 생성한 다음, 필요에 따라 ServerStatsTenancy를 연결하면 됩니다. OpenAPI 서버 엔진과 OpenAPI 클라이언트 클래스는 sgcHTTP_OpenAPI_* 유닛에 코드 전용 클래스로 들어 있어 폼에 올릴 것이 없습니다. 생성한 다음 구성하고 메서드를 바로 호출하면 됩니다.

REST Server컴포넌트 4종

필요에 따라 연결하는 서버 하나, 컴패니언 세 개

TsgcHTTPRESTServer는 표준 TsgcHTTPServer를 확장해 CORSOptions를 통한 CORS 처리와, 선택적 컴패니언을 위한 두 개의 속성인 ServerStatsTenancy를 더합니다. TsgcHTTPServerStats는 모든 요청을 상태 클래스별로 집계하고, 지연 시간의 최소/평균/최대값을 추적하며, Prometheus 형식의 /metrics 엔드포인트와 JSON /health 엔드포인트를 제공하고, 경로별 분석을 위한 GetEndpointStats를 갖추고 있습니다. TsgcHTTPServer_Tenancy는 호출자의 테넌트를 호스트 이름, 경로 세그먼트, 요청 헤더, JWT 클레임에서 해석하며, 서버 자체의 Tenant 속성이 처리 중인 요청의 결과 값을 읽어들입니다. TsgcHTTPServer_Users는 네 번째 독립형 컴패니언으로, AddUser, ValidateCredentials, 역할 태그, 솔트를 적용한 비밀번호 해싱을 갖춘 로컬 계정 저장소이며, 저장 데이터 암호화를 선택할 수 있고, 서버에 속성으로 연결하는 대신 라우트 핸들러에서 직접 조회합니다.

OpenAPI ServerAPI 정의 방식 2가지

이미 보유한 스펙을 제공하거나, 코드에서 생성하거나

스펙 우선: OpenAPI 3.0 또는 3.1 문서를 불러오면 TsgcOpenAPIRouteTable이 그 paths 섹션에서 라우트 테이블을 자동으로 구축합니다. 매칭된 요청은 TsgcOpenAPIServerContext로 도착하며, 경로와 쿼리 파라미터에 타입을 지정해 접근할 수 있고, 본문 헬퍼와 RespondJSON/RespondError가 있습니다. TsgcOpenAPIServerHandler는 모든 호출을 BeforeHandle, AfterHandle, HandleException으로 감싸며, TsgcOpenAPIJSONValidator는 본문, 쿼리, 경로 파라미터를 스펙이 선언하는 JSON 스키마에 대해 검증합니다. 코드 우선은 진실의 원천을 뒤집습니다: 일반 Delphi 클래스에 sgcServiceContract, sgcRoute, sgcHttpGet/sgcHttpPost, sgcFromPath/sgcFromQuery/sgcFromBody 애트리뷰트를 지정하면, TsgcOpenAPICodeFirstScanner.GenerateSpec이 그 RTTI에서 곧바로 OpenAPI 문서를 생성하므로 YAML을 직접 작성할 필요가 없습니다. TsgcOpenAPICodeFirstDispatcher와 짝지으면 애트리뷰트가 지정된 메서드가 각 오퍼레이션마다 직접 호출되어, 수동 디스패치 체인이 필요 없습니다. 코드 우선에는 Delphi XE7 이상이 필요합니다.

TsgcOpenAPIServerHandler TsgcOpenAPICodeFirstScanner 코드 우선에는 Delphi XE7 이상 필요
OpenAPI Client클래스 1종

OpenAPI로 설명된 모든 API를 사용

TsgcOpenAPI_Client는 OpenAPI 문서가 설명하는 모든 엔드포인트를 위한 범용 런타임 클라이언트입니다: HTTP_REQUEST가 호출을 전달하고, Authentication이 Basic 인증과 베어러 토큰에 더해 범용 OAuth2와 JWT를 다루며, OnBeforeRequest, OnUpload, OnDownload가 이를 추적합니다.

서버 하나, 조합 가능한 컴패니언들

일곱 개의 클래스는 역할에 따라 깔끔하게 나뉩니다. REST 서버가 HTTP 트래픽을 처리하고, 세 개의 컴패니언이 프로덕션 API에 필요한 기능을 더하며, OpenAPI 엔진은 작성되었든 생성되었든 스펙을 실제로 동작하는 라우트 테이블로 바꿉니다.

REST 서버는 확장된 TsgcHTTPServer입니다

TsgcHTTPRESTServer는 모든 sgcWebSockets 에디션에 포함된 일반 HTTP 서버의 바인딩, TLS, HTTP/2 처리를 그대로 물려받고, 그 위에 CORS 처리와 연결 가능한 두 개의 컴패니언을 더하므로, REST API가 별도의 프레임워크 없이도 메트릭, 헬스 체크, 멀티테넌시를 갖추게 됩니다.

통계, 테넌시, 사용자는 내장 기능이 아니라 컴패니언입니다

TsgcHTTPServerStats, TsgcHTTPServer_Tenancy, TsgcHTTPServer_Users는 개별 컴포넌트입니다. 특정 API에 필요한 것만 연결하고 나머지는 빼도 되며, 연결은 되어 있지만 구성되지 않은 컴패니언은 서버가 확인하는 데 아무런 비용도 들지 않습니다.

스펙 우선과 코드 우선은 결국 같은 라우트 테이블로 이어집니다

OpenAPI 문서가 불러온 파일에서 왔든, 애트리뷰트가 지정된 클래스를 스캔하는 TsgcOpenAPICodeFirstScanner.GenerateSpec에서 왔든, 둘 다 JSON이며 동일한 라우트 테이블과 요청 컨텍스트가 어느 쪽이든 처리합니다. Delphi XE7 이상이 필요한 것은 코드 우선 스캐너 자체뿐입니다.

Core 런타임이 상자 안에 들어 있습니다

단독 제품으로 sgcWebSockets Core 런타임이 포함되어 있습니다. REST 서버와 모든 OpenAPI 클래스가 동작하는 HTTP/TLS 스택을 제공하며, 다른 모든 것과 마찬가지로 전체 소스가 패키지에 포함됩니다.

나란히 놓인 REST 서버와 OpenAPI 클라이언트

REST 서버는 sgcHTTP_REST_Server에, OpenAPI 클라이언트는 sgcHTTP_OpenAPI_Client에 선언되어 있습니다. 동일한 코드가 Delphi 7부터 13까지와 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);

애드온 없이, 모든 플랫폼에서

일곱 개의 클래스 모두 RAD Studio에 기본으로 포함된 표준 Indy 라이브러리에서 동작하므로, sgcWebSockets가 이미 지원하는 전체 플랫폼 범위를 애드온 없이 사용할 수 있습니다.

REST 서버 계열 TsgcHTTPRESTServer, ServerStats, Tenancy & Users
Windows Win32 Windows Win64 Linux64 macOS iOS Android
OpenAPI 서버 & 클라이언트 계열 스펙 우선, 코드 우선, 그리고 OpenAPI 클라이언트 클래스
Windows Win32 Windows Win64 Linux64 macOS iOS Android
IDE 지원 하나의 소스 트리, 버전별 디자인 타임 패키지
Delphi 7부터 13까지 C++ Builder
코드 우선 OpenAPI Delphi XE7에서 도입된 RTTI가 필요합니다
Delphi XE7부터 13까지
체험판 설치 프로그램 sgcWebSockets All-Access 체험판에는 sgcREST 컴포넌트가 포함되어 있습니다
다운로드 한 번으로 일곱 개의 클래스 모두

체험판 설치 프로그램 다운로드 →

단독으로 완결되는 패키지

sgcREST는 단독으로 라이선스되며 개발자 1인 기준 €249부터 시작합니다. 모든 라이선스에 전체 소스 코드, 1년간의 업데이트, 50%에서 70%까지의 갱신 할인이 포함됩니다. 팩 1개를 갱신하면 50%, 2개는 60%, 3개 이상은 70%입니다. sgcAI, sgcMQ, sgcSocial, sgcAuth, sgcHTTP, sgcREST는 각각 한 팩으로 계산됩니다. sgcREST는 All-Access 번들에도 포함됩니다.

sgcREST

€249

Single, Team, Site 라이선스를 제공합니다.

  • CORS, 통계, 테넌시, 사용자를 갖춘 REST 서버
  • OpenAPI 서버, 스펙 우선 & 코드 우선
  • OpenAPI로 설명된 모든 API용 OpenAPI 클라이언트
  • sgcWebSockets Core 런타임 포함
  • Delphi 7부터 13까지 & C++ Builder
  • 전체 소스 코드
  • 1년간의 업데이트

결제 시 추가하거나 제거할 애드온이 없습니다. sgcREST는 RAD Studio에 기본으로 포함된 표준 Indy 라이브러리에서 동작합니다.

결제 화면에는 두 항목이 표시됩니다. 0원으로 청구되는 sgcWebSockets Core 런타임 사용 권한과 sgcREST 패키지 자체입니다. 자세한 가격 정보.

3,000+Developers
20+Years
761+Components
30+API Integrations
5Platforms
30일 환불 보장만족하지 않으세요? 구매 후 30일 이내에 전액 환불을 요청하세요. 환불 정책 보기

네이티브 코드로 만나는 REST API와 OpenAPI

통계, 멀티테넌시, 사용자를 갖춘 REST 서버, 스펙 우선이나 코드 우선으로 동작하는 OpenAPI 서버, OpenAPI로 설명된 모든 API용 OpenAPI 클라이언트까지, 런타임이 함께 포함되어 있고 전체 소스 코드가 상자 안에 들어 있습니다. All-Access 체험판 설치 프로그램을 다운로드하고 오늘 바로 일곱 개의 클래스를 모두 사용해 보세요.

eSeGeCe의 다른 제품

sgcREST를 Delphi, C++ Builder, .NET용 다른 컴포넌트 라이브러리와 함께 사용해 보세요.

sgcWebSockets

전체 라이브러리입니다. WebSocket 클라이언트와 서버, HTTP/2, gRPC, IoT, P2P, AI 컴포넌트를 제공합니다. Enterprise 에디션에는 OpenAPI 서버도 포함되어 있습니다.

자세히 알아보기 →

sgcHTTP

HTTP/2, gRPC, Google Cloud Pub/Sub, Calendar, Firebase Cloud Messaging 클라이언트 컴포넌트이며, Core 런타임이 함께 포함되어 있습니다.

자세히 알아보기 →

sgcAuth

OAuth2와 JWT 클라이언트 컴포넌트에 WebAuthn 패스키 로그인까지 갖추어, REST API의 사용자 저장소와 자연스럽게 짝을 이룹니다.

자세히 알아보기 →

sgcAI

AI, LLM, MCP 컴포넌트입니다. 채팅 컴포넌트 하나로 OpenAI, Anthropic, Gemini, DeepSeek, Ollama, Grok, Mistral에 연결합니다.

자세히 알아보기 →

sgcMQ

네이티브 MQTT 3.1.1/5.0, AMQP 0.9.1, AMQP 1.0, Apache Kafka, STOMP 클라이언트 컴포넌트이며, Core 런타임이 함께 포함되어 있습니다.

자세히 알아보기 →

sgcOpenAPI

별도로 번들된 제품입니다. OpenAPI 3.x 파서, 네이티브 Pascal SDK 생성기, 1,195개 이상의 사전 빌드된 클라우드 SDK를 제공하며, 런타임 클라이언트가 아니라 오프라인 코드 생성을 위한 것입니다.

자세히 알아보기 →