Strumenti client/server OpenAPI per Delphi — guida al confronto

Una panoramica neutrale e con fonti citate delle opzioni di generazione client e codice OpenAPI disponibili per gli sviluppatori Delphi e C++ Builder nel 2026: sgcOpenAPI, OpenAPI Generator, Swagger Codegen, mORMot 2, TMS XData con il suo companion OpenAPI Delphi Generator e l'approccio del client REST scritto a mano. Ogni affermazione sulle funzionalità rimanda alla documentazione del progetto stesso.

Sei percorsi da una specifica OpenAPI al codice Delphi funzionante

Un riassunto di un paragrafo per ciascuna opzione, con un link alla documentazione o al repository ufficiale. Il confronto dettagliato è nella matrice qui sotto.

OpenAPI Generator

Comunità OpenAPI Tools · Apache 2.0 (open source)

Strumento Java open source, originariamente derivato da Swagger Codegen, che offre oltre 60 generatori client e oltre 40 generatori di stub server. Genera client e/o server per C, C#, C++ (cpp-restsdk, Qt5, Oat++, Tizen, Unreal Engine 4), Go, Java, Kotlin, PHP, Python, Rust, TypeScript e molti altri. L'elenco ufficiale dei generatori non include un target Delphi / Object Pascal / Free Pascal.

Pagina ufficiale

Swagger Codegen

SmartBear / comunità · Apache 2.0 (open source)

Il progetto originale di generazione codice in Java di SmartBear, da cui OpenAPI Generator è stato derivato nel 2018. Supporta 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 e TypeScript. La linea 3.x supporta OpenAPI 3.0; la linea 2.x supporta solo OpenAPI 2.0 (Swagger). Non esiste un generatore Delphi o Object Pascal in nessuna delle due linee.

Pagina ufficiale

Generatore client OpenAPI di mORMot 2

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

mORMot 2 include mormot.net.openapi.pas, che legge un documento OpenAPI 3.x o Swagger 2.0 (file o URL) e produce unit client Pascal per FPC / Delphi — record di alto livello e array dinamici come DTO, enumerazioni Pascal per i valori enum e traduzione dei codici di stato HTTP in eccezioni. L'unit è destinata a FPC e Delphi 7 / 2009 o successivi e funziona come parte del framework SOA / ORM mORMot più ampio.

Pagina ufficiale

TMS XData e OpenAPI Delphi Generator

TMS Software / Landgraf Software · Commerciale (XData) / Apache 2.0 + Commons Clause (generatore)

TMS XData è un framework commerciale Delphi per remoting REST / JSON / ORM. Un server XData può pubblicare un documento OpenAPI (precedentemente Swagger) su /openapi/swagger.json per i propri endpoint e si integra con SwaggerUI / Redoc. Il companion OpenAPI Delphi Generator (originariamente integrato in XData, ora un progetto open source separato all'indirizzo landgraf-dev/openapi-delphi-generator) consuma documenti Swagger 2.0 / OpenAPI 3.0 e produce interfacce Delphi e classi DTO da utilizzare con TXDataClient.

Pagina ufficiale

Client REST scritti a mano (Indy / THTTPClient)

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

Una realtà comune: gli sviluppatori scrivono il client REST a mano utilizzando TIdHTTP (Indy) o System.Net.HttpClient.THTTPClient (incluso in Delphi). Niente generazione di codice, niente schema; marshalling JSON manuale con le unit JSON della RTL (o TJSONObject). Anche l'autenticazione, la logica di retry e la paginazione sono scritte a mano.

Pagina ufficiale

Confronto affiancato delle funzionalità

Un segno di spunta () indica che il progetto documenta il supporto nativo. Un trattino () indica che il progetto non lo fornisce nativamente. Una tilde (~) indica supporto parziale / tramite add-on / non esplicitamente documentato — consulta la sezione Fonti per ciò che è stato possibile verificare.

Generatori, runtime, licenze

12 righe
Funzionalità sgcOpenAPI OpenAPI Generator Swagger Codegen Generatore client OpenAPI di mORMot 2 TMS XData e OpenAPI Delphi Generator Client REST scritti a mano (Indy / THTTPClient)
Genera client Delphi Client Object Pascal nativo da OpenAPI 3.x
Genera codice C++ Builder Target C++ Builder VCL / FMX (BCC32 / BCC64) ~ ~ ~ ~
Genera stub server Scaffolding lato server da una specifica OpenAPI
Client HTTP/2 Trasporto HTTP/2 nativo nel client generato ~ ~ ~ ~
DTO JSON tipizzati Classi / record / enum fortemente tipizzati ~
Helper OAuth2 / JWT Flussi OAuth2 e helper JWT integrati ~
Helper async / sync Pattern di chiamata sia asincroni che sincroni ~
Runtime multipiattaforma Win / macOS / Linux / iOS / Android
SDK vendor inclusi AWS / Azure / GCP / Microsoft Graph precompilati
Uso commerciale consentito La licenza consente l'uso commerciale closed-source
Manutenzione attiva Release o tag negli ultimi 12–18 mesi ~
Modello di licenza Tipo di licenza Commerciale Apache 2.0 (open source) Apache 2.0 (open source) MPL / GPL / LGPL Commerciale (XData) + Apache 2.0 + CC (generatore) BSD / MPL (Indy) · EULA RAD Studio (THTTPClient)
Supporto nativo documentato Non fornito nativamente ~ Parziale / tramite add-on / non verificato

Adattamento onesto per ciascuna opzione

Ogni opzione qui presente ha un pubblico reale. La scelta giusta dipende dal fatto che siano necessari stub server insieme ai client, dalle toolchain Pascal supportate, dalle preferenze di licenza e dal fatto che gli SDK vendor inclusi facciano risparmiare tempo.

Scegli sgcOpenAPI

Scegli sgcOpenAPI quando vuoi un singolo strumento commerciale che genera codice client per Delphi 7–13 e C++ Builder da qualsiasi specifica OpenAPI 3.x o Swagger 2.x, quando vuoi SDK Pascal precompilati per AWS, Azure, Google Cloud o Microsoft Graph già inclusi, quando hai come target VCL e FireMonkey per macOS / Linux / iOS / Android, e quando hai bisogno di zero dipendenze runtime esterne oltre alle unit sgcOpenAPI.

Scegli OpenAPI Generator

Scegli OpenAPI Generator quando il tuo team sviluppa client o stub server in linguaggi diversi da Delphi — C#, Java, Go, TypeScript, Rust, Python — dalla stessa specifica OpenAPI, quando hai bisogno sia di client che di stub server da un unico strumento, oppure quando la licenza Apache-2.0 e un'ampia comunità di contributori di template sono importanti per te.

Scegli Swagger Codegen

Scegli Swagger Codegen quando usi già l'ecosistema SmartBear / Swagger (SwaggerHub, Swagger Editor) end-to-end, quando vuoi il successore mantenuto ufficialmente più vicino allo storico generatore di codice Swagger 2.0, e quando i tuoi target sono linguaggi JVM / .NET / di scripting mainstream piuttosto che Delphi.

Scegli il generatore client OpenAPI di mORMot 2

Scegli il generatore OpenAPI di mORMot 2 quando il tuo progetto usa già mORMot per ORM, SOA o hosting, quando vuoi un generatore di codice open source Pascal-nativo con licenza MPL / GPL / LGPL, oppure quando hai come target FPC su Linux / BSD / macOS sia per il generatore client sia per il codice risultante.

Scegli TMS XData e OpenAPI Delphi Generator

Scegli TMS XData quando costruisci anche il server in Delphi e vuoi server + client + remoting ORM da un unico vendor, quando la navigazione SwaggerUI / Redoc dei tuoi contratti di servizio è un requisito, oppure quando hai già una licenza TMS Business / All-Access. Scegli lo stand-alone OpenAPI Delphi Generator quando hai bisogno solo della generazione di codice lato client e preferisci la licenza Apache 2.0 + Commons Clause.

Scegli i client REST scritti a mano (Indy / THTTPClient)

Scegli un client REST scritto a mano quando la superficie dell'API è ridotta (pochi endpoint), quando non puoi distribuire componenti di terze parti per motivi di licenza o conformità, oppure quando l'API non ha una specifica OpenAPI pubblicata e un generatore non porterebbe alcun vantaggio. Sia Indy che THTTPClient sono inclusi in RAD Studio, quindi non ci sono dipendenze aggiuntive.

Passaggio a sgcOpenAPI — cosa cambia

Brevi note sulle differenze se stai passando da una delle opzioni sopra. Non polemiche — solo la mappatura pratica.

Passaggio da OpenAPI Generator

OpenAPI Generator non ha Delphi come target, quindi qui "migrazione" significa generare client C# / Java / TS insieme al client Delphi di sgcOpenAPI dalla stessa specifica. Se la configurazione precedente era un wrapper C# costruito con OpenAPI Generator e consumato da Delphi tramite COM o REST, sgcOpenAPI elimina quel livello producendo direttamente il client Delphi.

Passaggio da Swagger Codegen

Swagger Codegen non ha Delphi come target. Se il tuo flusso di lavoro precedente esportava un client C# o Java generico e lo incapsulava per Delphi, sgcOpenAPI ti consente di generare il client Delphi direttamente dalla stessa specifica eliminando il livello wrapper.

Passaggio dal generatore client OpenAPI di mORMot 2

Il generatore client OpenAPI di mORMot vive all'interno del framework più ampio. Se la tua applicazione usa solo il generatore e non i livelli SOA / ORM / WebSocket, sgcOpenAPI ti offre un set di componenti standalone e drop-in senza le unit aggiuntive. Al contrario, se usi anche i contratti SOA e l'ORM di mORMot, passare solo per il generatore OpenAPI significherebbe reimplementare quelle parti, che sgcOpenAPI non fornisce.

Passaggio da TMS XData e OpenAPI Delphi Generator

Se attualmente usi l'importer integrato di XData per generare client da specifiche Swagger di terze parti, nota che l'importer è stato separato nel progetto open source landgraf-dev/openapi-delphi-generator — le classi interne di XData sono documentate come deprecate. sgcOpenAPI è un generatore diverso, supportato commercialmente, che legge nativamente OpenAPI 3.x, include SDK per le principali piattaforme cloud e ha come target Delphi 7–13 più C++ Builder.

Passaggio dai client REST scritti a mano (Indy / THTTPClient)

I client scritti a mano invecchiano male quando la superficie dell'API cresce o quando il servizio upstream pubblica nuovi endpoint. sgcOpenAPI può generare gli stessi DTO e firme di metodo dalla specifica pubblicata in pochi secondi, liberando la logica scritta a mano per le parti che ne hanno davvero bisogno (retry personalizzati, telemetria, collante di business). Il codice generato utilizza un trasporto HTTP simile, quindi il modello mentale dello sviluppatore rimane vicino.

Ogni cella nella matrice sopra rimanda a una di queste pagine di documentazione ufficiale, repository o note di rilascio. Tutti gli URL sono stati verificati con HEAD al momento della scrittura.

FonteURL
sgcOpenAPI — pagina prodottohttps://www.esegece.com/products/openapi/
sgcOpenAPI — funzionalitàhttps://www.esegece.com/products/openapi/features/
sgcOpenAPI — parserhttps://www.esegece.com/products/openapi/parser/
sgcOpenAPI — SDK precompilatihttps://www.esegece.com/products/openapi/apis/
OpenAPI Generator — home del progettohttps://openapi-generator.tech/
OpenAPI Generator — repository GitHubhttps://github.com/OpenAPITools/openapi-generator
OpenAPI Generator — elenco dei generatori supportatihttps://github.com/OpenAPITools/openapi-generator/blob/master/docs/generators.md
OpenAPI Generator — releasehttps://github.com/OpenAPITools/openapi-generator/releases
Swagger Codegen — pagina prodotto (swagger.io)https://swagger.io/tools/swagger-codegen/
Swagger Codegen — repository GitHubhttps://github.com/swagger-api/swagger-codegen
Swagger Codegen Generators (template 3.x)https://github.com/swagger-api/swagger-codegen-generators
mORMot 2 — repository GitHub (synopse/mORMot2)https://github.com/synopse/mORMot2
mORMot 2 — README (riferimento a network e OpenAPI)https://github.com/synopse/mORMot2/blob/master/README.md
mORMot 2 — releasehttps://github.com/synopse/mORMot2/releases
Forum Synopse (Object Pascal SOA / ORM / OpenAPI)https://synopse.info/
TMS XData — pagina prodottohttps://www.tmssoftware.com/site/xdata.asp
TMS XData — indice della documentazionehttps://doc.tmssoftware.com/biz/xdata/guide/index.html
TMS XData — guida al supporto OpenAPIhttps://doc.tmssoftware.com/biz/xdata/guide/openapi.html
OpenAPI Delphi Generator (precedentemente importer di XData)https://github.com/landgraf-dev/openapi-delphi-generator
Indy — homepage del progettohttps://www.indyproject.org/
Indy — repository GitHub (IndySockets/Indy)https://github.com/IndySockets/Indy
Indy — release (ultimo tag 10.6.3.14)https://github.com/IndySockets/Indy/releases
Documentazione Embarcadero — System.Net.HttpClient.THTTPClienthttps://docwiki.embarcadero.com/Libraries/Sydney/en/System.Net.HttpClient.THTTPClient
OpenAPI Initiative — repository della specificahttps://github.com/OAI/OpenAPI-Specification
OpenAPI Specification — rendering HTML autorevolehttps://spec.openapis.org/

Prova sgcOpenAPI

Scarica gratuitamente l'edizione Trial e genera il tuo primo SDK Pascal da una specifica OpenAPI 3.x in pochi minuti.