Outillage client/serveur OpenAPI pour Delphi — guide de comparaison

Un tour d'horizon neutre, avec sources citées, des options de client OpenAPI et de génération de code disponibles pour les développeurs Delphi et C++ Builder en 2026 : sgcOpenAPI, OpenAPI Generator, Swagger Codegen, mORMot 2, TMS XData avec son compagnon OpenAPI Delphi Generator, et la voie du client REST codé à la main. Chaque affirmation sur une fonctionnalité renvoie à la documentation officielle du projet.

Six chemins d'une spec OpenAPI à du code Delphi fonctionnel

Un résumé d'un paragraphe pour chaque option, avec un lien vers la documentation officielle ou le dépôt. La comparaison détaillée est dans la matrice ci-dessous.

OpenAPI Generator

Communauté OpenAPI Tools · Apache 2.0 (open source)

Outil Java open source, à l'origine forké depuis Swagger Codegen, fournissant plus de 60 générateurs client et plus de 40 générateurs de stubs serveur. Génère des clients et/ou des serveurs pour C, C#, C++ (cpp-restsdk, Qt5, Oat++, Tizen, Unreal Engine 4), Go, Java, Kotlin, PHP, Python, Rust, TypeScript et bien d'autres. La liste officielle des générateurs n'inclut pas de cible Delphi / Object Pascal / Free Pascal.

Page officielle

Swagger Codegen

SmartBear / communauté · Apache 2.0 (open source)

Le projet original de générateur de code Java de SmartBear, à partir duquel OpenAPI Generator a été forké en 2018. Prend en charge ActionScript, Ada, Apex, Bash, C#, C++, Clojure, Dart, Elixir, Erlang, Go, Groovy, Haskell, Java, Kotlin, Lua, Node.js, Objective-C, Perl, PHP, PowerShell, Python, R, Ruby, Rust, Scala, Swift et TypeScript. La ligne 3.x prend en charge OpenAPI 3.0 ; la ligne 2.x ne prend en charge qu'OpenAPI 2.0 (Swagger). Il n'y a pas de générateur Delphi ou Object Pascal dans aucune des deux lignes.

Page officielle

Générateur client OpenAPI mORMot 2

Arnaud Bouchez / Synopse · MPL / GPL / LGPL (open source)

mORMot 2 fournit mormot.net.openapi.pas, qui lit un document OpenAPI 3.x ou Swagger 2.0 (fichier ou URL) et émet des unités client FPC / Delphi Pascal — records de haut niveau et tableaux dynamiques comme DTO, énumérations Pascal pour les valeurs d'enum, et traduction des codes de statut HTTP en exceptions. L'unité cible FPC et Delphi 7 / 2009 et ultérieur, et s'exécute dans le cadre du framework mORMot SOA / ORM plus large.

Page officielle

TMS XData & OpenAPI Delphi Generator

TMS Software / Landgraf Software · Commerciale (XData) / Apache 2.0 + Commons Clause (générateur)

TMS XData est un framework commercial Delphi de remoting REST / JSON / ORM. Un serveur XData peut publier un document OpenAPI (anciennement Swagger) à /openapi/swagger.json pour ses propres endpoints, et se combine avec SwaggerUI / Redoc. Le compagnon OpenAPI Delphi Generator (à l'origine fourni dans XData, maintenant un projet open source séparé à landgraf-dev/openapi-delphi-generator) consomme des documents Swagger 2.0 / OpenAPI 3.0 et émet des interfaces Delphi et des classes DTO pour utilisation avec TXDataClient.

Page officielle

Clients REST codés à la main (Indy / THTTPClient)

Indy Project / Embarcadero · BSD / MPL (Indy) · EULA RAD Studio (THTTPClient)

Une réalité courante : les développeurs écrivent le client REST à la main en utilisant TIdHTTP (Indy) ou System.Net.HttpClient.THTTPClient (livré avec Delphi). Pas de génération de code, pas de schéma ; marshalling JSON manuel avec les unités JSON RTL (ou TJSONObject). L'authentification, la logique de nouvelle tentative et la pagination sont également faites à la main.

Page officielle

Comparaison côte à côte des fonctionnalités

Un point () signifie que le projet documente un support natif. Un tiret () signifie que le projet ne le fournit pas nativement. Un tilde (~) signifie partiel / via un add-on / non explicitement documenté — consulte la section Sources pour ce que nous avons pu vérifier.

Générateurs, runtime, licence

15 lignes
Fonctionnalité sgcOpenAPI OpenAPI Generator Swagger Codegen mORMot 2 OpenAPI client generator TMS XData & OpenAPI Delphi Generator Hand-coded REST clients (Indy / THTTPClient)
Génère un client Delphi Client Object Pascal natif depuis OpenAPI 3.x
Génère du code C++ Builder Cibles C++ Builder VCL / FMX (BCC32 / BCC64) ~ ~ ~ ~
Génère des stubs serveur Échafaudage côté serveur depuis une spec OpenAPI
Runtime serveur Delphi natif Composant serveur HTTP embarqué qui héberge les endpoints générés dans un processus Delphi / C++ Builder ~
Publication d'un document OpenAPI en direct Le serveur expose son propre openapi.json / openapi.yaml à l'exécution pour la découverte et SwaggerUI / Redoc
Validation des requêtes / réponses côté serveur Les requêtes entrantes et les réponses sortantes sont validées contre les schémas OpenAPI à l'exécution ~ ~ ~ ~
Client HTTP/2 Transport HTTP/2 natif dans le client généré ~ ~ ~ ~
DTO JSON typés Classes / records / enums fortement typés ~
Helpers OAuth2 / JWT Flux OAuth2 intégrés et helpers JWT ~
Helpers async / sync Modèles d'appel à la fois asynchrones et synchrones ~
Runtime multiplateforme Win / macOS / Linux / iOS / Android
SDK vendor groupés AWS / Azure / GCP / Microsoft Graph préconçus
Usage commercial autorisé La licence autorise un usage commercial à code source fermé
Maintenance active Release ou activité taguée au cours des 12 à 18 derniers mois ~
Modèle de licence Type de licence Commercial Apache 2.0 (open source) Apache 2.0 (open source) MPL / GPL / LGPL Commercial (XData) + Apache 2.0 + CC (générateur) BSD / MPL (Indy) · EULA RAD Studio (THTTPClient)
Support natif documenté Non fourni nativement ~ Partiel / via un add-on / non vérifié

Passer à sgcOpenAPI — ce qui diffère

Notes courtes sur les différences si tu passes depuis une des options ci-dessus. Pas d'esprit antagoniste — juste un mappage pratique.

Migrer depuis OpenAPI Generator

OpenAPI Generator ne cible pas Delphi, donc « migration » ici signifie générer des clients C# / Java / TS en parallèle du client Delphi sgcOpenAPI depuis la même spec. Si ton ancienne configuration était un wrapper C# construit par OpenAPI Generator consommé depuis Delphi via COM ou REST, sgcOpenAPI supprime cette couche en produisant directement le client Delphi.

Migrer depuis Swagger Codegen

Swagger Codegen ne cible pas Delphi. Si ton ancien workflow exportait un client C# ou Java générique et l'enveloppait pour Delphi, sgcOpenAPI te permet de générer le client Delphi directement depuis la même spec et supprime la couche wrapper.

Migrer depuis le générateur client OpenAPI mORMot 2

Le générateur client OpenAPI de mORMot vit à l'intérieur du framework plus large. Si ton application n'utilise que le générateur et pas les couches SOA / ORM / WebSocket, sgcOpenAPI te donne un ensemble de composants autonomes, prêt à l'emploi, sans les unités supplémentaires. Inversement, si tu utilises aussi les contrats SOA et l'ORM de mORMot, passer uniquement pour le générateur OpenAPI signifie réimplémenter ces parties, ce que sgcOpenAPI ne fournit pas.

Migrer depuis TMS XData & OpenAPI Delphi Generator

Si tu utilises actuellement l'importateur intégré d'XData pour générer des clients depuis des spécifications Swagger tierces, note que l'importateur a été extrait dans le projet open source landgraf-dev/openapi-delphi-generator — les classes dans XData sont documentées comme dépréciées. sgcOpenAPI est un générateur différent, soutenu commercialement, qui lit nativement OpenAPI 3.x, regroupe des SDK pour les principales plateformes cloud, et cible Delphi 7–13 plus C++ Builder.

Migrer depuis des clients REST codés à la main (Indy / THTTPClient)

Les clients codés à la main vieillissent mal quand la surface d'API grandit ou quand le service amont publie de nouveaux endpoints. sgcOpenAPI peut générer les mêmes DTO et signatures de méthodes depuis la spec publiée en quelques secondes, libérant la logique codée à la main pour les parties qui en ont vraiment besoin (nouvelles tentatives personnalisées, télémétrie, glue métier). Le code généré utilise un transport HTTP similaire, donc le modèle mental du développeur reste proche.

Chaque affirmation, sourcée

Chaque cellule de la matrice ci-dessus renvoie à l'une de ces pages de documentation officielles, dépôts ou notes de version. Toutes les URL ont été vérifiées par HEAD au moment de la rédaction.

SourceURL
sgcOpenAPI — page produithttps://www.esegece.com/products/openapi/
sgcOpenAPI — fonctionnalitéshttps://www.esegece.com/products/openapi/features/
sgcOpenAPI — parserhttps://www.esegece.com/products/openapi/parser/
sgcOpenAPI — SDK préconçushttps://www.esegece.com/products/openapi/apis/
OpenAPI Generator — page d'accueil du projethttps://openapi-generator.tech/
OpenAPI Generator — dépôt GitHubhttps://github.com/OpenAPITools/openapi-generator
OpenAPI Generator — liste des générateurs pris en chargehttps://github.com/OpenAPITools/openapi-generator/blob/master/docs/generators.md
OpenAPI Generator — releaseshttps://github.com/OpenAPITools/openapi-generator/releases
Swagger Codegen — page produit (swagger.io)https://swagger.io/tools/swagger-codegen/
Swagger Codegen — dépôt GitHubhttps://github.com/swagger-api/swagger-codegen
Swagger Codegen Generators (templates 3.x)https://github.com/swagger-api/swagger-codegen-generators
mORMot 2 — dépôt GitHub (synopse/mORMot2)https://github.com/synopse/mORMot2
mORMot 2 — README (mention réseau & OpenAPI)https://github.com/synopse/mORMot2/blob/master/README.md
mORMot 2 — releaseshttps://github.com/synopse/mORMot2/releases
Forum Synopse (SOA / ORM / OpenAPI Object Pascal)https://synopse.info/
TMS XData — page produithttps://www.tmssoftware.com/site/xdata.asp
TMS XData — index de la documentationhttps://doc.tmssoftware.com/biz/xdata/guide/index.html
TMS XData — guide du support OpenAPIhttps://doc.tmssoftware.com/biz/xdata/guide/openapi.html
OpenAPI Delphi Generator (anciennement importateur XData)https://github.com/landgraf-dev/openapi-delphi-generator
Indy — page d'accueil du projethttps://www.indyproject.org/
Indy — dépôt GitHub (IndySockets/Indy)https://github.com/IndySockets/Indy
Indy — releases (dernière tag 10.6.3.14)https://github.com/IndySockets/Indy/releases
Documentation Embarcadero — System.Net.HttpClient.THTTPClienthttps://docwiki.embarcadero.com/Libraries/Sydney/en/System.Net.HttpClient.THTTPClient
OpenAPI Initiative — dépôt de la spécificationhttps://github.com/OAI/OpenAPI-Specification
Spécification OpenAPI — rendus HTML faisant autoritéhttps://spec.openapis.org/

Essaye sgcOpenAPI

Télécharge l'édition Trial gratuite et génère ton premier SDK Pascal depuis une spécification OpenAPI 3.x en quelques minutes.