Amazon AWS
Des SDK de services REST couvrant S3, EC2, Lambda, DynamoDB, SQS, SNS, CloudFormation et plus encore. Dépose l’unité dans le projet et appelle le service avec des classes de requête et de réponse typées.
Voir les SDK AWS →
Pointe sgcOpenAPI vers un document OpenAPI 3.x. Le parser le lit, le générateur produit un SDK Object Pascal natif, et le composant serveur OpenAPI republie tes propres endpoints sous forme de spécification en direct. Ou saute complètement l’étape de génération, parce que plus de 1 195 SDK pour AWS, Azure, Google Cloud et Microsoft Graph sont déjà construits et livrés avec le produit.
Chaque niveau de sgcOpenAPI, Single, Team et Site, regroupe le parser, le générateur de code, le composant serveur OpenAPI et toute la bibliothèque de SDK préconçus. Rien n’est vendu séparément.
Un seul produit groupé pour Delphi et C++ Builder : un parser OpenAPI 3.x, un générateur natif de SDK Pascal, un composant serveur OpenAPI et plus de 1 195 SDK cloud préconçus. Code source complet, déploiement sans royalties.
Tu n’as rien à générer pour démarrer. Les quatre plus grandes plateformes cloud sont livrées dans sgcOpenAPI sous forme de SDK Pascal prêts à l’emploi, générés à partir des spécifications officielles et tenus à jour.
Des SDK de services REST couvrant S3, EC2, Lambda, DynamoDB, SQS, SNS, CloudFormation et plus encore. Dépose l’unité dans le projet et appelle le service avec des classes de requête et de réponse typées.
Voir les SDK AWS →Le plus grand ensemble de la bibliothèque. Azure VMs, Blob Storage, Functions, Cosmos DB, Key Vault et le reste du plan de contrôle Azure, chacun sous forme de client Pascal généré.
Voir les SDK Azure →Compute Engine, Cloud Storage, BigQuery, Pub/Sub, Cloud Functions et plus encore.
Voir les SDK Google →Office 365, Microsoft Teams, OneDrive, Outlook et Active Directory, via l’API Graph.
Voir les SDK Microsoft →Si l’API publie un document OpenAPI ou Swagger, le générateur en fait le même type d’unité Pascal typée. Il n’y a aucune liste blanche.
Fonctionnalités du générateur →Des guides pas à pas, d’une spécification publique à un client Delphi qui compile :
Cinq étapes, toutes dans l’IDE. Pas de Node.js, pas de générateur de code Java, pas de moteur de templates à apprendre.
Charge un document OpenAPI 3.x depuis un fichier, une URL ou une chaîne, en JSON ou en YAML. Les fichiers Swagger 1.x et 2.x sont détectés et convertis au modèle OpenAPI 3.x pour toi.
TsgcOpenAPIParser résout les pointeurs $ref, y compris les fichiers externes et les références circulaires, aplatit allOf, oneOf et anyOf, et signale les erreurs de structure ligne par ligne.
TsgcOpenAPIGenerator produit des classes, des records et des énumérations Pascal fortement typés, regroupés à raison d’une classe par tag, ainsi qu’une documentation PDF et CHM à côté du code.
Dépose les unités générées dans le projet. Il n’y a aucune dépendance externe au-delà du runtime sgcOpenAPI, de Delphi 7 à RAD Studio 13 et de C++ Builder 2007 à 13.
Règle BaseURL, renseigne les identifiants et appelle l’opération. Méthodes et résultats typés, IntelliSense complet dans l’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;
Le parser et le générateur sont des composants distincts, tu peux donc aussi parcourir toi-même le modèle analysé et construire ton propre outillage par-dessus. Le composant parser →
TsgcOpenAPIServer publie un document OpenAPI 3.x en direct, route les requêtes entrantes selon la spec, valide les charges utiles dans les deux sens et embarque Swagger UI et Redoc, le tout depuis un seul composant Delphi posé sur le serveur HTTP/2 de sgcWebSockets.
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} exécute le gestionnaire ci-dessus. GET /openapi.json renvoie le document en direct. GET /docs ouvre Swagger UI et GET /redoc ouvre Redoc. HTTP/2 et TLS sont déjà actifs si le serveur HTTP les a configurés.
Charge un contrat YAML ou JSON et lie les gestionnaires aux identifiants d’opération, ou enregistre les gestionnaires en Pascal et laisse le composant construire le document OpenAPI à l’exécution.
Champs obligatoires, conversion de types, appartenance aux énumérations, validateurs de format, limites de longueur et de plage, motifs et composition de schémas sont tous appliqués avant l’exécution du gestionnaire. Les échecs reviennent sous forme de problem details RFC 7807, avec un diagnostic champ par champ.
Chaque securityScheme du document est appliqué automatiquement. Tu écris la recherche des identifiants, le composant se charge de l’analyse, des en-têtes de challenge et des réponses 401 et 403.
Le serveur tourne sur le même serveur HTTP sgcWebSockets qui héberge tes endpoints WebSocket et tes fichiers statiques. Un seul port, un seul certificat TLS, un seul flux de journalisation.
sgcOpenAPI est l’une des six bibliothèques de composants eSeGeCe pour Delphi, C++ Builder et .NET. Elles partagent les mêmes conventions, elles sont livrées avec le code source complet et se déploient sans royalties.
Parser OpenAPI 3.x, générateur natif de SDK Pascal, composant serveur OpenAPI et plus de 1 195 SDK préconçus pour AWS, Azure, Google Cloud et Microsoft Graph.
En savoir plus →WebSocket, HTTP/2, HTTP/3, MQTT, AMQP, WebRTC, IA et plus de 30 intégrations d’APIs. Le serveur HTTP sur lequel tourne le composant serveur OpenAPI.
En savoir plus →Composants HTML et d’interface côté serveur sur Bootstrap 5 et htmx. Construis l’interface d’administration ou le tableau de bord des clients REST que tu génères, sans front-end JavaScript.
En savoir plus →XAdES, PAdES, CAdES et ASiC pour les documents, Authenticode, ClickOnce, NuGet et VSIX pour le code. Signe les corps de requête et de réponse que ton API échange.
En savoir plus →Windows Hello, capteurs d’empreintes digitales et Windows Biometric Framework pour Delphi et C++ Builder. Protège l’accès à ton API derrière une empreinte digitale.
En savoir plus →Composants Indy TCP/IP mis à jour avec TLS moderne, IPv6 et HTTP/2, de Delphi 7 à 13. La couche transport sous les clients générés.
En savoir plus →Plébiscité par des développeurs Delphi, C++ Builder, Lazarus et .NET dans le monde entier.
Votre bibliothèque sgcWebSockets est très utile et facile à configurer. Continuez votre excellent travail !
sgcWebSockets est incroyable et votre support est le meilleur !
Merci beaucoup pour votre aide et votre support, j’adore vos composants.