eSeGeCe — Enterprise-communicatiecomponenten voor Delphi & .NET
UITGELICHT · sgcOpenAPI

Stop met het handmatig schrijven van REST-clients

Richt sgcOpenAPI op een OpenAPI 3.x-document. De parser leest het, de generator produceert een native Object Pascal-SDK, en het OpenAPI-servercomponent publiceert je eigen endpoints weer als een live spec. Of sla de generator helemaal over, want 1.195+ SDK's voor AWS, Azure, Google Cloud en Microsoft Graph zijn al gebouwd en meegeleverd.

  • OpenAPI 3.0 en 3.1
  • JSON en YAML
  • Swagger 2.0 automatisch geconverteerd
  • Delphi 7 tot en met RAD Studio 13

De SDK die je nodig hebt is waarschijnlijk al geschreven

Elke tier van sgcOpenAPI, Single, Team en Site, bevat de parser, de codegenerator, het OpenAPI-servercomponent en de volledige bibliotheek met kant-en-klare SDK's. Er wordt niets apart verkocht.

1.195+ Kant-en-klare cloud-SDK's Gegenereerd uit de officiële OpenAPI-specificaties en regelmatig bijgewerkt.
280+ Amazon AWS-services REST-service-SDK's voor S3, EC2, Lambda, DynamoDB, SQS, SNS, CloudFormation en meer.
650+ Microsoft Azure-services Azure VM's, Blob Storage, Functions, Cosmos DB, Key Vault en meer.
250+ Google Cloud-services Compute Engine, Cloud Storage, BigQuery, Pub/Sub, Cloud Functions en meer.
15+ Microsoft Graph-SDK's Office 365, Microsoft Teams, OneDrive, Outlook en Active Directory.
sgcOpenAPI

Eén gebundeld product voor Delphi en C++ Builder: een OpenAPI 3.x-parser, een native Pascal-SDK-generator, een OpenAPI-servercomponent, en 1.195+ kant-en-klare cloud-SDK's. Volledige broncode, royaltyvrije implementatie.

Vier clouds, al in Pascal

Je hoeft niets te genereren om te beginnen. De vier grootste cloudplatforms worden als kant-en-klare Pascal-SDK's meegeleverd in sgcOpenAPI, gegenereerd uit de officiële specificaties en up-to-date gehouden.

280+ services

Amazon AWS

REST-service-SDK's voor S3, EC2, Lambda, DynamoDB, SQS, SNS, CloudFormation en meer. Zet de unit in je project en roep de service aan met getypeerde request- en response-classes.

Bekijk de AWS-SDK's →
650+ services

Microsoft Azure

De grootste set in de bibliotheek. Azure VM's, Blob Storage, Functions, Cosmos DB, Key Vault en de rest van de Azure-control-plane, elk een gegenereerde Pascal-client.

Bekijk de Azure-SDK's →
250+ services

Google Cloud

Compute Engine, Cloud Storage, BigQuery, Pub/Sub, Cloud Functions en meer.

Bekijk de Google-SDK's →
Al het andere

Elke andere spec

Als de API een OpenAPI- of Swagger-document publiceert, maakt de generator er dezelfde soort getypeerde Pascal-unit van. Er is geen allowlist.

Functies van de generator →

Uitgewerkte handleidingen, van een openbare specificatie tot een compilerende Delphi-client:

Spec erin, compilerende code eruit

Vijf stappen, allemaal binnen de IDE. Geen Node.js, geen Java-codegenerator, geen template-engine om te leren.

  1. 1 Richt het op een spec

    Laad een OpenAPI 3.x-document uit een bestand, een URL of een string, in JSON of YAML. Swagger 1.x- en 2.x-bestanden worden herkend en voor je omgezet naar het OpenAPI 3.x-model.

  2. 2 Parsen

    TsgcOpenAPIParser lost $ref-pointers op, ook naar externe bestanden en circulaire verwijzingen, vlakt allOf, oneOf en anyOf af, en meldt structuurfouten tot op regelniveau.

  3. 3 Genereren

    TsgcOpenAPIGenerator produceert sterk getypeerde Pascal-classes, -records en -enumeraties, gegroepeerd als één class per tag, plus PDF- en CHM-documentatie naast de code.

  4. 4 Compileren

    Zet de gegenereerde units in je project. Er zijn geen externe afhankelijkheden buiten de sgcOpenAPI-runtime, op Delphi 7 tot en met RAD Studio 13 en C++ Builder 2007 tot en met 13.

  5. 5 Aanroepen

    Stel BaseURL in, stel de inloggegevens in, en roep de operatie aan. Type-veilige methodes, getypeerde resultaten, volledige IntelliSense in de IDE.

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;

De parser en de generator zijn afzonderlijke componenten, dus je kunt het geparste model ook zelf doorlopen en er je eigen tooling bovenop bouwen. Het parsercomponent →

Serveer de spec, consumeer hem niet alleen

TsgcOpenAPIServer publiceert een live OpenAPI 3.x-document, routeert binnenkomende verzoeken volgens de spec, valideert payloads in beide richtingen, en levert een ingebouwde Swagger UI en Redoc, allemaal vanuit één Delphi-component bovenop de sgcWebSockets HTTP/2-server.

OpenAPIServer.pas
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;

Wat je daarmee krijgt

GET /pets/{petId} voert de handler hierboven uit. GET /openapi.json geeft het live document terug. GET /docs opent Swagger UI en GET /redoc opent Redoc. HTTP/2 en TLS staan al aan als de HTTP-server ze geconfigureerd heeft.

Spec-first of code-first

Laad een YAML- of JSON-contract en koppel handlers aan de operation-ID's, of registreer handlers in Pascal en laat het component het OpenAPI-document tijdens runtime opbouwen.

Validatie in beide richtingen

Verplichte velden, typeconversie, enum-waarden, formaatvalidators, lengte- en bereikgrenzen, patronen en schemacompositie worden allemaal afgedwongen voordat de handler draait. Fouten komen terug als RFC 7807 problem details met diagnostiek op veldniveau.

Authenticatie rechtstreeks uit de spec

Elk securityScheme in het document wordt automatisch afgedwongen. Jij schrijft de opzoekactie voor de inloggegevens, het component doet het parsen, de challenge-headers en de 401- en 403-antwoorden.

API Key HTTP Basic Bearer JWT OAuth2 OpenID Connect mTLS Swagger UI + Redoc

Het OpenAPI-servercomponent →

De server draait op dezelfde sgcWebSockets HTTP-server die je WebSocket-endpoints en statische bestanden host. Eén poort, één TLS-certificaat, één logstroom.

Zes bibliotheken, één gereedschapskist

sgcOpenAPI is een van de zes eSeGeCe-componentenbibliotheken voor Delphi, C++ Builder en .NET. Ze delen dezelfde conventies, worden geleverd met volledige broncode en zijn royaltyvrij te implementeren.

sgcOpenAPI

OpenAPI 3.x-parser, native Pascal-SDK-generator, OpenAPI-servercomponent, en 1.195+ kant-en-klare SDK's voor AWS, Azure, Google Cloud en Microsoft Graph.

Meer informatie →

sgcWebSockets

WebSocket, HTTP/2, HTTP/3, MQTT, AMQP, WebRTC, AI en 30+ API-integraties. De HTTP-server waarop het OpenAPI-servercomponent draait.

Meer informatie →

sgcHTML

Server-side HTML- en UI-componenten op Bootstrap 5 en htmx. Bouw de beheer- of dashboard-UI voor de REST-clients die je genereert, zonder JavaScript-front-end.

Meer informatie →

sgcSign

XAdES, PAdES, CAdES en ASiC voor documenten, Authenticode, ClickOnce, NuGet en VSIX voor code. Onderteken de request- en response-bodies die je API uitwisselt.

Meer informatie →

sgcBiometrics

Windows Hello, vingerafdruksensoren en het Windows Biometric Framework voor Delphi en C++ Builder. Zet API-toegang achter een vingerafdruk.

Meer informatie →

sgcIndy

Bijgewerkte Indy TCP/IP-componenten met moderne TLS, IPv6 en HTTP/2 voor Delphi 7 tot en met 13. De transportlaag onder de gegenereerde clients.

Meer informatie →

Bekijk de prijzen en edities Download de gratis proefversie

Wat ontwikkelaars zeggen

Vertrouwd door Delphi-, C++ Builder-, Lazarus- en .NET-ontwikkelaars over de hele wereld.

Jullie sgcWebSockets-bibliotheek is erg handig en eenvoudig op te zetten. Ga zo door!

Simone Moretti Delphi-ontwikkelaar

sgcWebSockets is geweldig en jullie support is de beste!

Christian Meyer Oprichter & CTO

Heel erg bedankt voor jullie hulp en ondersteuning, ik ben dol op jullie componenten.

Mark Steinfeld CTO

Je ziet nu de weergave OpenAPI van eSeGeCe.

Toon me een andere invalshoek →
Niet-goed-geld-terug-garantie van 30 dagenNiet tevreden? Vraag binnen 30 dagen na aankoop een volledige terugbetaling aan. Bekijk het terugbetalingsbeleid

Genereer vandaag nog je eerste Pascal-SDK

Parser, codegenerator, OpenAPI-servercomponent en alle 1.195+ kant-en-klare cloud-SDK's, op één licentie. Volledige broncode, royaltyvrije implementatie, Delphi 7 tot en met RAD Studio 13.