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

15 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
Runtime server Delphi nativo Componente server HTTP integrato che ospita gli endpoint generati in un processo Delphi / C++ Builder ~
Pubblica documento OpenAPI live Il server espone il proprio openapi.json / openapi.yaml a runtime per discovery e SwaggerUI / Redoc
Validazione richieste / risposte lato server Le richieste in ingresso e le risposte in uscita vengono validate a runtime rispetto agli schemi 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

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.