Herramientas cliente/servidor de OpenAPI para Delphi — guía comparativa

Un análisis neutral y con fuentes citadas de las opciones cliente y de generación de código de OpenAPI disponibles para desarrolladores de Delphi y C++ Builder en 2026: sgcOpenAPI, OpenAPI Generator, Swagger Codegen, mORMot 2, TMS XData con su compañero OpenAPI Delphi Generator y la vía del cliente REST escrito a mano. Cada afirmación sobre características enlaza con la propia documentación del proyecto.

Seis vías desde una especificación OpenAPI a código Delphi funcional

Un resumen de un párrafo de cada opción, con enlace a la documentación o el repositorio oficial. La comparativa detallada está en la matriz de más abajo.

OpenAPI Generator

Comunidad OpenAPI Tools · Apache 2.0 (open source)

Herramienta Java de código abierto, originalmente bifurcada de Swagger Codegen, que ofrece más de 60 generadores de cliente y más de 40 generadores de stubs de servidor. Genera clientes y/o servidores para C, C#, C++ (cpp-restsdk, Qt5, Oat++, Tizen, Unreal Engine 4), Go, Java, Kotlin, PHP, Python, Rust, TypeScript y muchos más. La lista oficial de generadores no incluye un objetivo Delphi / Object Pascal / Free Pascal.

Página oficial

Swagger Codegen

SmartBear / comunidad · Apache 2.0 (open source)

El proyecto original de generador de código en Java de SmartBear, del cual se bifurcó OpenAPI Generator en 2018. Compatible con 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 y TypeScript. La línea 3.x admite OpenAPI 3.0; la línea 2.x admite únicamente OpenAPI 2.0 (Swagger). Ninguna línea incluye un generador para Delphi u Object Pascal.

Página oficial

Generador de cliente OpenAPI de mORMot 2

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

mORMot 2 incluye mormot.net.openapi.pas, que lee un documento OpenAPI 3.x o Swagger 2.0 (archivo o URL) y emite unidades cliente de Pascal para FPC / Delphi: records de alto nivel y arrays dinámicos como DTO, enumeraciones de Pascal para los valores enum, y traducción de códigos de estado HTTP a excepciones. La unidad apunta a FPC y a Delphi 7 / 2009 y posteriores, y se ejecuta como parte del marco más amplio mORMot SOA / ORM.

Página oficial

TMS XData y OpenAPI Delphi Generator

TMS Software / Landgraf Software · Comercial (XData) / Apache 2.0 + Commons Clause (generador)

TMS XData es un marco comercial de remoting REST / JSON / ORM para Delphi. Un servidor XData puede publicar un documento OpenAPI (antes Swagger) en /openapi/swagger.json para sus propios endpoints y se integra con SwaggerUI / Redoc. El compañero OpenAPI Delphi Generator (originalmente incluido en XData, ahora un proyecto separado de código abierto en landgraf-dev/openapi-delphi-generator) consume documentos Swagger 2.0 / OpenAPI 3.0 y emite interfaces Delphi más clases DTO para usar con TXDataClient.

Página oficial

Clientes REST escritos a mano (Indy / THTTPClient)

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

Una realidad habitual: las personas desarrolladoras escriben el cliente REST a mano usando TIdHTTP (Indy) o System.Net.HttpClient.THTTPClient (incluido con Delphi). Sin generación de código, sin esquema; el marshalling manual de JSON se hace con las unidades JSON de la RTL (o TJSONObject). La autenticación, la lógica de reintentos y la paginación también se hacen a mano.

Página oficial

Comparativa lado a lado de características

Una marca () significa que el proyecto documenta soporte nativo. Un guion () significa que el proyecto no lo proporciona de forma nativa. Una tilde (~) significa parcial / mediante un complemento / no documentado explícitamente; consulta la sección Fuentes para ver lo que pudimos verificar.

Generadores, runtime, licencias

12 filas
Característica sgcOpenAPI OpenAPI Generator Swagger Codegen Generador de cliente OpenAPI de mORMot 2 TMS XData y OpenAPI Delphi Generator Clientes REST escritos a mano (Indy / THTTPClient)
Genera cliente Delphi Cliente nativo en Object Pascal a partir de OpenAPI 3.x
Genera código para C++ Builder Objetivos VCL / FMX de C++ Builder (BCC32 / BCC64) ~ ~ ~ ~
Genera stubs de servidor Andamiaje del lado del servidor a partir de una especificación OpenAPI
Cliente HTTP/2 Transporte HTTP/2 nativo en el cliente generado ~ ~ ~ ~
DTO JSON tipados Clases / records / enums con tipado fuerte ~
Helpers de OAuth2 / JWT Flujos de OAuth2 y helpers de JWT incorporados ~
Helpers asíncronos / síncronos Patrones de llamada tanto asíncronos como síncronos ~
Runtime multiplataforma Win / macOS / Linux / iOS / Android
SDK de proveedor incluidos AWS / Azure / GCP / Microsoft Graph preconstruidos
Uso comercial permitido La licencia permite uso comercial de código cerrado
Mantenimiento activo Lanzamientos o actividad etiquetada en los últimos 12–18 meses ~
Modelo de licencia Tipo de licencia Comercial Apache 2.0 (open source) Apache 2.0 (open source) MPL / GPL / LGPL Comercial (XData) + Apache 2.0 + CC (generador) BSD / MPL (Indy) · EULA de RAD Studio (THTTPClient)
Soporte nativo documentado No se ofrece de forma nativa ~ Parcial / mediante complemento / sin verificar

Encaje honesto de cada opción

Cada opción aquí tiene un público real. La elección correcta depende de si necesitas stubs de servidor junto con clientes, qué cadenas de herramientas Pascal admites, tu preferencia de licencia y si los SDK de proveedor incluidos te ahorran tiempo.

Elige sgcOpenAPI

Elige sgcOpenAPI cuando quieras una única herramienta comercial que genere código cliente para Delphi 7–13 y C++ Builder a partir de cualquier especificación de OpenAPI 3.x o Swagger 2.x, cuando quieras SDK de Pascal preconstruidos para AWS, Azure, Google Cloud o Microsoft Graph ya incluidos, cuando apuntes a VCL más FireMonkey para macOS / Linux / iOS / Android, y cuando necesites cero dependencias externas en runtime más allá de las unidades de sgcOpenAPI.

Elige OpenAPI Generator

Elige OpenAPI Generator cuando tu equipo construya clientes o stubs de servidor en lenguajes distintos a Delphi (C#, Java, Go, TypeScript, Rust, Python) a partir de la misma especificación OpenAPI, cuando necesites tanto clientes como stubs de servidor desde una sola herramienta, o cuando te importen la licencia Apache 2.0 y una gran comunidad de personas que contribuyen plantillas.

Elige Swagger Codegen

Elige Swagger Codegen cuando ya uses el ecosistema SmartBear / Swagger (SwaggerHub, Swagger Editor) de extremo a extremo, cuando quieras el sucesor mantenido oficialmente más cercano al histórico generador de código Swagger 2.0, y cuando tus objetivos sean lenguajes mayoritarios de JVM / .NET / scripting en lugar de Delphi.

Elige el generador de cliente OpenAPI de mORMot 2

Elige el generador OpenAPI de mORMot 2 cuando tu proyecto ya use mORMot para ORM, SOA u hosting, cuando quieras un generador de código nativo de Pascal de código abierto bajo MPL / GPL / LGPL, o cuando apuntes a FPC en Linux / BSD / macOS tanto para el generador de cliente como para el código resultante.

Elige TMS XData y OpenAPI Delphi Generator

Elige TMS XData cuando construyas también el servidor en Delphi y quieras servidor + cliente + remoting ORM de un mismo proveedor, cuando explorar tus propios contratos de servicio mediante SwaggerUI / Redoc sea un requisito, o cuando ya tengas licencia de TMS Business / All-Access. Elige el OpenAPI Delphi Generator independiente cuando solo necesites generación de código del lado del cliente y prefieras la licencia Apache 2.0 + Commons Clause.

Elige clientes REST escritos a mano (Indy / THTTPClient)

Elige un cliente REST escrito a mano cuando la superficie de la API sea muy pequeña (un puñado de endpoints), cuando no puedas distribuir componentes de terceros por motivos de licencia o cumplimiento, o cuando la API no tenga una especificación OpenAPI publicada y un generador no te aporte nada. Tanto Indy como THTTPClient se incluyen con RAD Studio, así que no hay dependencias adicionales.

Migrar a sgcOpenAPI — qué cambia

Notas breves sobre las diferencias si vienes de una de las opciones anteriores. Sin ánimo de enfrentar; solo la correspondencia práctica.

Migrar desde OpenAPI Generator

OpenAPI Generator no apunta a Delphi, así que aquí "migración" significa generar clientes en C# / Java / TS junto con el cliente Delphi de sgcOpenAPI a partir de la misma especificación. Si tu configuración anterior era un wrapper en C# generado con OpenAPI Generator y consumido desde Delphi por COM o REST, sgcOpenAPI elimina esa capa al producir el cliente Delphi directamente.

Migrar desde Swagger Codegen

Swagger Codegen no apunta a Delphi. Si tu flujo anterior exportaba un cliente genérico en C# o Java y lo envolvía para Delphi, sgcOpenAPI te permite generar el cliente Delphi directamente a partir de la misma especificación y elimina la capa wrapper.

Migrar desde el generador de cliente OpenAPI de mORMot 2

El generador OpenAPI de mORMot vive dentro del marco más amplio. Si tu aplicación solo usa el generador y no las capas SOA / ORM / WebSocket, sgcOpenAPI te ofrece un conjunto de componentes independiente, listo para usar, sin las unidades adicionales. Por el contrario, si también usas los contratos SOA y el ORM de mORMot, cambiar solo por el generador OpenAPI significa reimplementar esas piezas, que sgcOpenAPI no proporciona.

Migrar desde TMS XData y OpenAPI Delphi Generator

Si actualmente usas el importador integrado de XData para generar clientes a partir de especificaciones Swagger de terceros, ten en cuenta que el importador se separó al proyecto de código abierto landgraf-dev/openapi-delphi-generator; las clases internas de XData están documentadas como obsoletas. sgcOpenAPI es un generador distinto, con soporte comercial, que lee de forma nativa OpenAPI 3.x, incluye SDK para las principales plataformas en la nube y apunta a Delphi 7–13 más C++ Builder.

Migrar desde clientes REST escritos a mano (Indy / THTTPClient)

Los clientes escritos a mano envejecen mal cuando la superficie de la API crece o cuando el servicio upstream publica nuevos endpoints. sgcOpenAPI puede generar los mismos DTO y firmas de método a partir de la especificación publicada en segundos, liberando la lógica escrita a mano para las partes que realmente la necesitan (reintentos personalizados, telemetría, pegamento de negocio). El código generado usa un transporte HTTP similar, así que el modelo mental para la persona desarrolladora se mantiene cercano.

Cada afirmación, con enlace

Cada celda de la matriz anterior remite a una de estas páginas oficiales de documentación, repositorios o notas de versión. Todas las URL se comprobaron con HEAD en el momento de la redacción.

FuenteURL
sgcOpenAPI — página del productohttps://www.esegece.com/products/openapi/
sgcOpenAPI — característicashttps://www.esegece.com/products/openapi/features/
sgcOpenAPI — parserhttps://www.esegece.com/products/openapi/parser/
sgcOpenAPI — SDK preconstruidoshttps://www.esegece.com/products/openapi/apis/
OpenAPI Generator — página del proyectohttps://openapi-generator.tech/
OpenAPI Generator — repositorio GitHubhttps://github.com/OpenAPITools/openapi-generator
OpenAPI Generator — lista de generadores compatibleshttps://github.com/OpenAPITools/openapi-generator/blob/master/docs/generators.md
OpenAPI Generator — lanzamientoshttps://github.com/OpenAPITools/openapi-generator/releases
Swagger Codegen — página del producto (swagger.io)https://swagger.io/tools/swagger-codegen/
Swagger Codegen — repositorio GitHubhttps://github.com/swagger-api/swagger-codegen
Swagger Codegen Generators (plantillas 3.x)https://github.com/swagger-api/swagger-codegen-generators
mORMot 2 — repositorio GitHub (synopse/mORMot2)https://github.com/synopse/mORMot2
mORMot 2 — README (mención a red y OpenAPI)https://github.com/synopse/mORMot2/blob/master/README.md
mORMot 2 — lanzamientoshttps://github.com/synopse/mORMot2/releases
Foro Synopse (Object Pascal SOA / ORM / OpenAPI)https://synopse.info/
TMS XData — página del productohttps://www.tmssoftware.com/site/xdata.asp
TMS XData — índice de documentaciónhttps://doc.tmssoftware.com/biz/xdata/guide/index.html
TMS XData — guía de soporte OpenAPIhttps://doc.tmssoftware.com/biz/xdata/guide/openapi.html
OpenAPI Delphi Generator (antes importador de XData)https://github.com/landgraf-dev/openapi-delphi-generator
Indy — página del proyectohttps://www.indyproject.org/
Indy — repositorio GitHub (IndySockets/Indy)https://github.com/IndySockets/Indy
Indy — lanzamientos (último etiquetado 10.6.3.14)https://github.com/IndySockets/Indy/releases
Documentación Embarcadero — System.Net.HttpClient.THTTPClienthttps://docwiki.embarcadero.com/Libraries/Sydney/en/System.Net.HttpClient.THTTPClient
OpenAPI Initiative — repositorio de la especificaciónhttps://github.com/OAI/OpenAPI-Specification
Especificación OpenAPI — renderizados HTML autorizadoshttps://spec.openapis.org/

Prueba sgcOpenAPI

Descarga la edición Trial gratuita y genera tu primer SDK Pascal a partir de una especificación de OpenAPI 3.x en minutos.