Amazon AWS, 280개 이상의 서비스
S3, EC2, Lambda, DynamoDB, SQS, SNS, CloudFormation 등을 아우르는 REST 서비스 SDK예요. 유닛을 프로젝트에 넣고, 타입이 지정된 요청 및 응답 클래스로 서비스를 호출하면 돼요.
AWS SDK 보기 →sgcOpenAPI에 OpenAPI 3.x 문서를 지정하세요. 파서가 문서를 읽고, 생성기가 네이티브 Object Pascal SDK를 만들어 내며, OpenAPI 서버 컴포넌트는 여러분의 엔드포인트를 살아 있는 스펙으로 다시 게시해요.
스펙을 넣으면 Pascal이 나오고, 양쪽 끝에서 서버를 띄울 수 있어요. 내레이션과 자막이 들어 있고, 재생 버튼을 누르기 전에는 아무것도 내려받지 않아요.
스펙을 Delphi 코드로 바꾸고, Delphi 코드를 실행 중인 서버로 바꿔 보세요.
시작하려고 무언가를 생성할 필요가 없어요. 가장 큰 네 개의 클라우드 플랫폼이 sgcOpenAPI 안에 바로 쓸 수 있는 Pascal SDK로 들어 있고, 공식 사양에서 생성되어 최신 상태로 유지돼요.
S3, EC2, Lambda, DynamoDB, SQS, SNS, CloudFormation 등을 아우르는 REST 서비스 SDK예요. 유닛을 프로젝트에 넣고, 타입이 지정된 요청 및 응답 클래스로 서비스를 호출하면 돼요.
AWS SDK 보기 →라이브러리에서 가장 큰 묶음이에요. Azure VM, Blob Storage, Functions, Cosmos DB, Key Vault를 비롯한 Azure 컨트롤 플레인 전체가 각각 생성된 Pascal 클라이언트로 제공돼요.
Azure SDK 보기 →Compute Engine, Cloud Storage, BigQuery, Pub/Sub, Cloud Functions 등을 지원해요.
Google SDK 보기 →Graph API를 통해 Office 365, Microsoft Teams, OneDrive, Outlook, Active Directory를 사용해요.
Microsoft SDK 보기 →API가 OpenAPI 또는 Swagger 문서를 게시한다면, 생성기가 그것을 똑같은 방식의 타입 지정 Pascal 유닛으로 바꿔 줘요. 허용 목록 같은 것은 없어요.
생성기 기능 →Single, Team, Site 모두 파서, 코드 생성기, OpenAPI 서버 컴포넌트, 사전 빌드 SDK 라이브러리 전체를 포함해요. 따로 판매하는 항목은 없어요.
사전 빌드된 SDK 전체 →공개 스펙에서 컴파일되는 Delphi 클라이언트까지, 단계별 가이드예요:
다섯 단계, 전부 IDE 안에서 끝나요. Node.js도, Java 코드 생성기도, 배워야 할 템플릿 엔진도 없어요.
# one input, one output, and you have a unit
> sgcOpenAPI.exe -i "api.github.com.json" -o "github.pas" -a 2
File successfully created github.pas
# -a 2 wires up token auth -u sets the base url
# -x drops operations -p prunes the classes they used
# -s emits a server stub instead of a client
# exit 0 ok, 5 bad input, 6 bad output, 7 not convertible
uses
github; // the unit you just generated
procedure TForm1.btnReposClick(Sender: TObject);
var
oResponse: TsgcOpenAPI_reposlistforauthenticateduser_Response;
oRepo: TsgcOpenAPI_repository_Class;
begin
GetOpenAPIClient.Authentication.Token.BearerToken := 'ghp_...';
oResponse := GetOpenAPIClient.reposlistforauthenticateduser(
'private', 'owner', 'all', 'full_name', '', 100, 1);
try
if oResponse.IsSuccessful then
for oRepo in oResponse.Successful.Items do
Memo1.Lines.Add(oRepo.Full_name)
else
Memo1.Lines.Add(IntToStr(oResponse.ResponseCode) + ' ' +
oResponse.ResponseError);
finally
oResponse.Free;
end;
end;
uses
sgcHTTP_Server, sgcHTTP_OpenAPI_Server, sgcWebSocket_Server_API_OpenAPI;
procedure TForm1.btnStartClick(Sender: TObject);
begin
FServer := TsgcHTTPServer.Create(Self);
FServer.Port := 8080;
FOpenAPI := TsgcWSAPIServer_OpenAPI.Create(Self);
FOpenAPI.OpenAPIOptions.Endpoint.ServeSpec := True;
FOpenAPI.OpenAPIOptions.Endpoint.ServeSwaggerUI := True;
FOpenAPI.OpenAPIOptions.Validation.ValidateRequest := True;
FOpenAPI.LoadFromFile('petstore.json');
FOpenAPI.OnRequest := OnOpenAPIRequest;
FOpenAPI.Server := FServer;
FServer.Active := True;
end;
// one event, dispatched by operation id
procedure TForm1.OnOpenAPIRequest(Sender: TObject;
const aOperationId: string;
const aContext: TsgcOpenAPIServerContext;
var Handled: Boolean);
begin
Handled := True;
if aOperationId = 'getPetById' then
aContext.RespondJSON(200,
FPets.Values[aContext.PathParamAsString('petId')])
else
Handled := False;
end;
-i 에 로컬 파일이나 URL을 JSON 또는 YAML로 지정하세요. 둘 다 로컬에서 읽고, Swagger 2.0 문서도 로컬에서 OpenAPI 3으로 변환돼요.TsgcOpenAPI 가 문서를 읽어 Paths, Components, Security, Servers, Tags 와 Info에 담고, 처리하지 못한 내용은 모두 Warnings에 기록해요. 외부 $ref 포인터는 그 전에 TsgcOpenAPI_Bundle이 끌어와요.TsgcOpenAPI_Parser_Client_Pascal 은 그 리더를 상속해서 Pascal 유닛 하나를 작성해요. 오퍼레이션마다 메서드 하나, 메서드마다 응답 클래스 하나, 스키마마다 클래스 하나가 나오고, 문서의 설명은 주석으로 들어가요.Source 폴더 외에 아무것도 필요하지 않으며, Delphi 7부터 RAD Studio 13까지 지원해요. 타입이 지정된 응답은 XE7 이상이 필요해요.GetOpenAPIClient를 호출하고 Authentication에 자격 증명을 설정한 다음 오퍼레이션을 호출하세요. 기본 URL은 문서의 servers 항목에서 이미 반영되어 있어요.생성기는 리더를 상속해요. 그래서 TsgcOpenAPI 를 직접 생성해서 파싱된 모델을 순회하고 그 위에 자신만의 도구를 만들 수도 있어요. 파서 컴포넌트 →
TsgcWSAPIServer_OpenAPI 는 TsgcHTTPServer에 붙어서 들어오는 요청을 불러온 문서에 맞추어 라우팅하고, 핸들러가 실행되기 전에 요청을 검증하며, 같은 포트에서 문서와 Swagger UI를 제공해요.

GET /pets/{petId} 는 OnRequest 핸들러에 aOperationId 가 getPetById로 설정된 채 도달해요. GET /openapi.json 은 불러온 문서를 반환하고 GET /docs 는 Swagger UI를 여는데, 둘 다 Endpoint.ServeSpec 와 Endpoint.ServeSwaggerUI로 켜져요. Endpoint.BasePath 는 이 둘을 접두사 아래로 옮겨요.

LoadFromFile 로 JSON 계약을 불러와 오퍼레이션 id로 분기하거나, Pascal 클래스에 sgcServiceContract, sgcHttpGet, sgcRoute 와 sgcFromBody 를 붙여 TsgcOpenAPICodeFirstScanner 가 문서를 만들게 하세요. 코드 우선은 Delphi XE7 이상이 필요해요. 두 데모 모두 다음 위치에 들어 있어요: Demos\30.Server\.

Validation.ValidateRequest, ValidateRequired 와 ValidateRequestBody 가 핸들러 실행 전에 들어오는 요청을 문서와 대조해요. OnValidationError 는 오퍼레이션 id와 실패 목록, 그리고 요청을 거부할지 결정하는 Continue 플래그를 넘겨줘요.

문서의 securityScheme 항목이 OnValidateAPIKey, OnValidateBasic 와 OnValidateBearer를 구동해요. 자격 증명 조회만 작성하면, 컴포넌트가 요청을 파싱하고 조회가 거부했을 때 알맞은 상태로 응답해요.
이 서버는 WebSocket 엔드포인트와 정적 파일을 호스팅하는 바로 그 sgcWebSockets HTTP 서버 위에서 동작해요. 포트 하나, TLS 인증서 하나, 로그 스트림 하나면 돼요. OpenAPI 서버 컴포넌트 →
Delphi와 C++ Builder용 통합 제품 하나예요. OpenAPI 3.x 파서, 네이티브 Pascal SDK 생성기, OpenAPI 서버 컴포넌트, 사전 빌드 클라우드 SDK 1,195개 이상이 들어 있어요. 전체 소스 코드와 로열티 없는 배포를 제공해요. 팀 규모에 맞게 고르세요.
개발자 1명. 파서, 생성기, 서버 컴포넌트, 모든 사전 빌드 SDK.
개발자 2명. Single과 같은 전체 제품이에요.
개발자 무제한. Single과 같은 전체 제품이에요.
sgcOpenAPI는 단독으로 라이선스가 부여돼요. 파서, 코드 생성기, 서버 컴포넌트, 사전 빌드 SDK 1,195개 이상 전체가 모든 라이선스에 포함돼요.
라이선스와 가격 비교전 세계의 Delphi, C++ Builder, Lazarus 및 .NET 개발자가 신뢰해요.
sgcWebSockets 라이브러리는 정말 유용하고 설정하기 쉬워요. 앞으로도 좋은 작업 부탁드려요!
sgcWebSockets는 정말 훌륭하고 지원도 최고예요!
도움과 지원에 정말 감사드려요. 컴포넌트가 너무 마음에 들어요.
파서, 코드 생성기, OpenAPI 서버 컴포넌트, 그리고 1,195개 이상의 사전 빌드 클라우드 SDK를 라이선스 하나로 사용해요. 전체 소스, 로열티 없는 배포, Delphi 7부터 RAD Studio 13까지 지원해요.
sgcOpenAPI는 Delphi, C++ Builder, .NET용 eSeGeCe 컴포넌트 라이브러리 중 하나예요. 모두 같은 규칙을 따르고, 전체 소스 코드가 포함되며, 로열티 없이 배포할 수 있어요.
WebSocket, HTTP/2, MQTT, AMQP, WebRTC, AI 및 30개 이상의 API 통합을 제공해요. OpenAPI 서버 컴포넌트가 올라가는 HTTP 서버예요.
Delphi와 C++ Builder를 위한 REST 서버, OpenAPI 서버, OpenAPI 클라이언트 컴포넌트예요. OpenAPI 3.x 계약으로 REST API를 게시하거나, OpenAPI로 설명된 모든 API를 사용할 수 있어요. 단독 제품이며 sgcWebSockets Core 런타임이 함께 제공돼요.
Bootstrap 5와 htmx 기반의 서버 사이드 HTML 및 UI 컴포넌트예요. JavaScript 프런트엔드 없이도 생성한 REST 클라이언트를 위한 관리자 화면이나 대시보드를 만들 수 있어요.
원시 QUIC 전송과 HTTP/3 클라이언트 및 서버, 그리고 WebTransport를 제공해요. 생성한 REST 클라이언트를 QUIC/HTTP-3 전송으로 노출하면 연결 지연이 줄어들어요.
문서에는 XAdES, PAdES, CAdES, ASiC를, 코드에는 Authenticode, ClickOnce, NuGet, VSIX를 제공해요. API가 주고받는 요청과 응답 본문에 서명할 수 있어요.
PDF 파일을 만들고, 편집하고, 보고, 서명하고, 가리고, 검증하는 기능을 순수 Object Pascal로 제공해요. 배포할 DLL이 없고, 별도로 라이선스돼요.
Delphi 7부터 13까지, 최신 TLS와 IPv6, HTTP/2를 갖춘 최신 Indy TCP/IP 컴포넌트예요. 생성된 클라이언트 아래의 전송 계층이에요.
팩, 애드온 등