Amazon AWS
S3, EC2, Lambda, DynamoDB, SQS, SNS, CloudFormation 등을 아우르는 REST 서비스 SDK예요. 유닛을 프로젝트에 넣고, 타입이 지정된 요청 및 응답 클래스로 서비스를 호출하면 돼요.
AWS SDK 보기 →
sgcOpenAPI에 OpenAPI 3.x 문서를 지정하세요. 파서가 문서를 읽고, 생성기가 네이티브 Object Pascal SDK를 만들며, OpenAPI 서버 컴포넌트가 여러분의 엔드포인트를 다시 실시간 스펙으로 게시해요. 아니면 생성기를 아예 건너뛰어도 돼요. AWS, Azure, Google Cloud, Microsoft Graph용 SDK 1,195개 이상이 이미 빌드되어 함께 제공되니까요.
sgcOpenAPI의 모든 등급, 즉 Single, Team, Site는 파서, 코드 생성기, OpenAPI 서버 컴포넌트, 그리고 사전 빌드 SDK 라이브러리 전체를 함께 제공해요. 따로 판매하는 것은 없어요.
시작하려고 무언가를 생성할 필요가 없어요. 가장 큰 네 개의 클라우드 플랫폼이 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 유닛으로 바꿔 줘요. 허용 목록 같은 것은 없어요.
생성기 기능 →공개된 사양에서 컴파일되는 Delphi 클라이언트까지, 단계별 가이드예요:
다섯 단계, 전부 IDE 안에서 끝나요. Node.js도, Java 코드 생성기도, 배워야 할 템플릿 엔진도 없어요.
파일, URL 또는 문자열에서 JSON이나 YAML로 된 OpenAPI 3.x 문서를 불러와요. Swagger 1.x와 2.x 파일은 자동으로 감지되어 OpenAPI 3.x 모델로 변환돼요.
TsgcOpenAPIParser가 외부 파일과 순환 참조를 포함한 $ref 포인터를 해석하고, allOf, oneOf, anyOf를 평탄화하며, 구조 오류를 줄 단위로 상세히 알려 줘요.
TsgcOpenAPIGenerator가 강타입 Pascal 클래스, 레코드, 열거형을 태그별로 한 클래스씩 묶어 생성하고, 코드와 함께 PDF 및 CHM 문서도 만들어요.
생성된 유닛을 프로젝트에 넣기만 하면 돼요. sgcOpenAPI 런타임 외에 외부 의존성은 없고, Delphi 7부터 RAD Studio 13까지, C++ Builder 2007부터 13까지 지원해요.
BaseURL과 자격 증명을 설정하고 오퍼레이션을 호출하세요. 타입 안전한 메서드, 타입이 지정된 결과, IDE의 완전한 IntelliSense를 제공해요.
uses
sgcOpenAPI_Parser, sgcOpenAPI_Generator;
var
vParser: TsgcOpenAPIParser;
vGen: TsgcOpenAPIGenerator;
begin
vParser := TsgcOpenAPIParser.Create(nil);
try
vParser.LoadFromFile('C:\specs\github\api.github.com.json');
Memo1.Lines.Add(Format('GitHub spec: %d paths, %d schemas',
[vParser.Paths.Count, vParser.Schemas.Count]));
vGen := TsgcOpenAPIGenerator.Create(nil);
try
vGen.Parser := vParser;
vGen.OutputUnit := 'sgcOpenAPI_GitHub';
vGen.OutputFolder := 'C:\Generated\GitHub';
vGen.GroupBy := gbTag; // one class per tag
vGen.Generate;
finally
vGen.Free;
end;
finally
vParser.Free;
end;
end;
uses
sgcOpenAPI_PetStore; // Generated from petstore.yaml
procedure TForm1.btnGetPetClick(Sender: TObject);
var
Client: TsgcOpenAPI_PetStoreClient;
Pet: TsgcOpenAPI_Pet;
begin
Client := TsgcOpenAPI_PetStoreClient.Create(nil);
try
Client.BaseURL := 'https://petstore.swagger.io/v2';
Client.ApiKey := 'your-api-key';
// Type-safe API call with IntelliSense
Pet := Client.GetPetById(42);
try
Memo1.Lines.Add('Name: ' + Pet.Name);
Memo1.Lines.Add('Status: ' + Pet.Status);
Memo1.Lines.Add('Category: ' + Pet.Category.Name);
finally
Pet.Free;
end;
finally
Client.Free;
end;
end;
파서와 생성기는 별개의 컴포넌트예요. 그래서 파싱된 모델을 직접 순회하면서 그 위에 자신만의 도구를 만들 수도 있어요. 파서 컴포넌트 →
TsgcOpenAPIServer는 실시간 OpenAPI 3.x 문서를 게시하고, 들어오는 요청을 스펙에 맞춰 라우팅하고, 양방향으로 페이로드를 검증하며, Swagger UI와 Redoc을 내장해 제공해요. 이 모든 것이 sgcWebSockets HTTP/2 서버 위에 올라가는 Delphi 컴포넌트 하나로 이뤄져요.
uses
sgcOpenAPI_Server, sgcOpenAPI_Types, sgcHTTP_Server;
procedure TForm1.FormCreate(Sender: TObject);
begin
FServer := TsgcOpenAPIServer.Create(nil);
FServer.HTTPServer := sgcHTTPServer1;
FServer.Spec.LoadFromFile('petstore.yaml');
FServer.PublishSpecPath := '/openapi.json';
FServer.SwaggerUIPath := '/docs';
FServer.RedocPath := '/redoc';
// Bind an operation declared in the spec
FServer.OnOperation_getPetById :=
procedure(const Ctx: TsgcOpenAPIContext)
var
oPet: TJSONObject;
begin
oPet := TJSONObject.Create;
oPet.AddPair('id', Ctx.PathParams['petId']);
oPet.AddPair('name', 'Rex');
oPet.AddPair('status', 'available');
Ctx.RespondJSON(200, oPet);
end;
sgcHTTPServer1.Port := 8080;
sgcHTTPServer1.Active := True;
end;
GET /pets/{petId}는 위 핸들러를 실행해요. GET /openapi.json은 실시간 문서를 반환해요. GET /docs는 Swagger UI를, GET /redoc은 Redoc을 열어요. HTTP 서버에 HTTP/2와 TLS가 설정되어 있다면 이미 켜져 있어요.
YAML이나 JSON 계약을 불러와 오퍼레이션 ID에 핸들러를 연결하거나, Pascal에서 핸들러를 등록하고 컴포넌트가 런타임에 OpenAPI 문서를 만들게 하세요.
필수 필드, 타입 변환, 열거값 확인, 포맷 검증기, 길이 및 범위 제한, 패턴, 스키마 합성이 모두 핸들러 실행 전에 강제돼요. 실패는 필드 수준 진단이 담긴 RFC 7807 problem details로 돌아와요.
문서에 있는 모든 securityScheme이 자동으로 적용돼요. 자격 증명 조회만 작성하면 파싱, 챌린지 헤더, 401 및 403 응답은 컴포넌트가 처리해요.
이 서버는 WebSocket 엔드포인트와 정적 파일을 호스팅하는 바로 그 sgcWebSockets HTTP 서버 위에서 동작해요. 포트 하나, TLS 인증서 하나, 로그 스트림 하나면 돼요.
sgcOpenAPI는 Delphi, C++ Builder, .NET을 위한 여섯 개의 eSeGeCe 컴포넌트 라이브러리 중 하나예요. 같은 규칙을 공유하고, 전체 소스와 함께 제공되며, 로열티 없이 배포할 수 있어요.
OpenAPI 3.x 파서, 네이티브 Pascal SDK 생성기, OpenAPI 서버 컴포넌트, 그리고 AWS, Azure, Google Cloud, Microsoft Graph용으로 사전 빌드된 1,195개 이상의 SDK를 제공해요.
자세히 알아보기 →WebSocket, HTTP/2, HTTP/3, MQTT, AMQP, WebRTC, AI 및 30개 이상의 API 통합을 제공해요. OpenAPI 서버 컴포넌트가 올라가는 HTTP 서버예요.
자세히 알아보기 →Bootstrap 5와 htmx 기반의 서버 사이드 HTML 및 UI 컴포넌트예요. JavaScript 프런트엔드 없이도 생성한 REST 클라이언트를 위한 관리자 화면이나 대시보드를 만들 수 있어요.
자세히 알아보기 →문서에는 XAdES, PAdES, CAdES, ASiC를, 코드에는 Authenticode, ClickOnce, NuGet, VSIX를 제공해요. API가 주고받는 요청과 응답 본문에 서명할 수 있어요.
자세히 알아보기 →Delphi와 C++ Builder용 Windows Hello, 지문 센서, Windows Biometric Framework를 제공해요. API 접근을 지문 뒤에 둘 수 있어요.
자세히 알아보기 →Delphi 7부터 13까지, 최신 TLS와 IPv6, HTTP/2를 갖춘 최신 Indy TCP/IP 컴포넌트예요. 생성된 클라이언트 아래의 전송 계층이에요.
자세히 알아보기 →전 세계의 Delphi, C++ Builder, Lazarus 및 .NET 개발자가 신뢰해요.
sgcWebSockets 라이브러리는 정말 유용하고 설정하기 쉬워요. 앞으로도 좋은 작업 부탁드려요!
sgcWebSockets는 정말 훌륭하고 지원도 최고예요!
도움과 지원에 정말 감사드려요. 컴포넌트가 너무 마음에 들어요.