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

15 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
Runtime de servidor Delphi nativo Componente de servidor HTTP embebido que aloja los endpoints generados en un proceso Delphi / C++ Builder ~
Publica documento OpenAPI en vivo El servidor expone su propio openapi.json / openapi.yaml en runtime para descubrimiento y SwaggerUI / Redoc
Validación de peticiones / respuestas en el servidor Peticiones entrantes y respuestas salientes validadas contra los esquemas OpenAPI en runtime ~ ~ ~ ~
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

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.