Ferramentas cliente/servidor OpenAPI para Delphi — guia de comparação

Um levantamento imparcial, com fontes citadas, das opções de cliente OpenAPI e geração de código disponíveis para desenvolvedores Delphi e C++ Builder em 2026: sgcOpenAPI, OpenAPI Generator, Swagger Codegen, mORMot 2, TMS XData com seu companheiro OpenAPI Delphi Generator e o caminho de clientes REST escritos à mão. Cada afirmação sobre recursos tem link para a documentação oficial do projeto.

Seis caminhos de uma especificação OpenAPI para código Delphi funcional

Um resumo de um parágrafo para cada opção, com link para a documentação ou repositório oficial. A comparação detalhada está na matriz abaixo.

OpenAPI Generator

Comunidade OpenAPI Tools · Apache 2.0 (código aberto)

Ferramenta Java de código aberto, originalmente derivada do Swagger Codegen, com mais de 60 geradores de clientes e 40 geradores de stubs de servidor. Gera clientes e/ou servidores para C, C#, C++ (cpp-restsdk, Qt5, Oat++, Tizen, Unreal Engine 4), Go, Java, Kotlin, PHP, Python, Rust, TypeScript e muito mais. A lista oficial de geradores não inclui um alvo Delphi / Object Pascal / Free Pascal.

Página oficial

Swagger Codegen

SmartBear / comunidade · Apache 2.0 (código aberto)

O projeto Java original de geração de código da SmartBear, do qual o OpenAPI Generator foi derivado em 2018. Suporta 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. A linha 3.x suporta OpenAPI 3.0; a linha 2.x suporta apenas OpenAPI 2.0 (Swagger). Não existe gerador Delphi ou Object Pascal em nenhuma das linhas.

Página oficial

mORMot 2 OpenAPI client generator

Arnaud Bouchez / Synopse · MPL / GPL / LGPL (código aberto)

O mORMot 2 inclui mormot.net.openapi.pas, que lê um documento OpenAPI 3.x ou Swagger 2.0 (arquivo ou URL) e emite units Pascal cliente para FPC / Delphi — records de alto nível e arrays dinâmicos como DTOs, enumerações Pascal para valores de enum e tradução de códigos de status HTTP em exceções. A unit tem como alvo FPC e Delphi 7 / 2009 e posteriores, e roda como parte do framework mais amplo de SOA / ORM do mORMot.

Página oficial

TMS XData & OpenAPI Delphi Generator

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

O TMS XData é um framework comercial de remoting REST / JSON / ORM para Delphi. Um servidor XData pode publicar um documento OpenAPI (anteriormente Swagger) em /openapi/swagger.json para seus próprios endpoints, e funciona com SwaggerUI / Redoc. O companheiro OpenAPI Delphi Generator (originalmente incluído no XData, agora um projeto open source separado em landgraf-dev/openapi-delphi-generator) consome documentos Swagger 2.0 / OpenAPI 3.0 e emite interfaces Delphi mais classes DTO para uso com TXDataClient.

Página oficial

Hand-coded REST clients (Indy / THTTPClient)

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

Uma realidade comum: desenvolvedores escrevem o cliente REST à mão usando TIdHTTP (Indy) ou System.Net.HttpClient.THTTPClient (incluído com o Delphi). Sem geração de código, sem esquema; marshalling JSON manual com as units JSON do RTL (ou TJSONObject). Autenticação, lógica de retry e paginação também são implementadas manualmente.

Página oficial

Comparação lado a lado de recursos

Um check () significa que o projeto documenta suporte nativo. Um traço () significa que o projeto não o fornece nativamente. Um til (~) significa parcial / via add-on / não documentado explicitamente — consulte a seção Fontes para o que foi possível verificar.

Geradores, runtime, licenciamento

12 linhas
Recurso sgcOpenAPI OpenAPI Generator Swagger Codegen mORMot 2 OpenAPI client generator TMS XData & OpenAPI Delphi Generator Hand-coded REST clients (Indy / THTTPClient)
Gera cliente Delphi Cliente Object Pascal nativo a partir de OpenAPI 3.x
Gera código para C++ Builder Alvos C++ Builder VCL / FMX (BCC32 / BCC64) ~ ~ ~ ~
Gera stubs de servidor Scaffolding no lado do servidor a partir de uma spec OpenAPI
Cliente HTTP/2 Transporte HTTP/2 nativo no cliente gerado ~ ~ ~ ~
DTOs JSON tipados Classes / records / enums fortemente tipados ~
Helpers de OAuth2 / JWT Fluxos OAuth2 e helpers JWT integrados ~
Helpers assíncrono / síncrono Padrões de chamada assíncrona e síncrona ~
Runtime multiplataforma Win / macOS / Linux / iOS / Android
SDKs de fornecedores incluídos AWS / Azure / GCP / Microsoft Graph pré-compilados
Uso comercial permitido A licença permite uso comercial de código fechado
Manutenção ativa Lançamento ou atividade com tag nos últimos 12–18 meses ~
Modelo de licença Tipo de licença Commercial Apache 2.0 (open source) Apache 2.0 (open source) MPL / GPL / LGPL Commercial (XData) + Apache 2.0 + CC (generator) BSD / MPL (Indy) · RAD Studio EULA (THTTPClient)
Suporte nativo documentado Não fornecido nativamente ~ Parcial / via add-on / não verificado

Avaliação honesta de cada opção

Cada opção aqui tem um público real. A escolha certa depende de se você precisa de stubs de servidor além dos clientes, quais toolchains Pascal você suporta, sua preferência de licença e se os SDKs de fornecedores incluídos economizam tempo.

Escolha sgcOpenAPI

Escolha o sgcOpenAPI quando você quer uma única ferramenta comercial que gere código cliente para Delphi 7–13 e C++ Builder a partir de qualquer spec OpenAPI 3.x ou Swagger 2.x, quando quiser SDKs Pascal pré-compilados para AWS, Azure, Google Cloud ou Microsoft Graph já incluídos, quando o alvo for VCL mais FireMonkey para macOS / Linux / iOS / Android e quando precisar de zero dependências externas de runtime além das units do sgcOpenAPI.

Escolha OpenAPI Generator

Escolha o OpenAPI Generator quando sua equipe constrói clientes ou stubs de servidor em linguagens diferentes do Delphi — C#, Java, Go, TypeScript, Rust, Python — a partir da mesma spec OpenAPI, quando precisar tanto de clientes quanto de stubs de servidor em uma única ferramenta, ou quando o licenciamento Apache 2.0 e uma grande comunidade de contribuidores de templates forem importantes para você.

Escolha Swagger Codegen

Escolha o Swagger Codegen quando você já usa o ecossistema SmartBear / Swagger (SwaggerHub, Swagger Editor) de ponta a ponta, quando quiser o sucessor oficialmente mantido mais próximo do gerador de código histórico do Swagger 2.0 e quando seus alvos forem linguagens JVM / .NET / scripting convencionais em vez de Delphi.

Escolha o gerador de cliente OpenAPI do mORMot 2

Escolha o gerador OpenAPI do mORMot 2 quando seu projeto já usa o mORMot para ORM, SOA ou hospedagem, quando quiser um gerador de código open source nativo para Pascal sob MPL / GPL / LGPL ou quando o alvo for FPC em Linux / BSD / macOS tanto para o gerador cliente quanto para o código resultante.

Escolha TMS XData & OpenAPI Delphi Generator

Escolha o TMS XData quando você também constrói o servidor em Delphi e quer servidor + cliente + remoting ORM de um único fornecedor, quando a navegação SwaggerUI / Redoc dos seus próprios contratos de serviço é um requisito ou quando você já licencia o TMS Business / All-Access. Escolha o OpenAPI Delphi Generator autônomo quando precisar apenas de geração de código no lado do cliente e preferir o licenciamento Apache 2.0 + Commons Clause.

Escolha clientes REST escritos à mão (Indy / THTTPClient)

Escolha um cliente REST escrito à mão quando a superfície da API é pequena (alguns endpoints), quando você não pode distribuir componentes de terceiros por razões de licença ou conformidade, ou quando a API não tem uma spec OpenAPI publicada e um gerador não traria benefícios. Indy e THTTPClient ambos são incluídos com o RAD Studio, portanto não há dependência extra.

Migrando para sgcOpenAPI — o que muda

Notas breves sobre as diferenças ao migrar de uma das opções acima. Sem confronto — apenas o mapeamento prático.

Migrando do OpenAPI Generator

O OpenAPI Generator não tem Delphi como alvo, então "migração" aqui significa gerar clientes C# / Java / TS junto com o cliente Delphi do sgcOpenAPI a partir da mesma spec. Se a configuração anterior era um wrapper C# gerado pelo OpenAPI Generator consumido a partir do Delphi via COM ou REST, o sgcOpenAPI elimina essa camada ao produzir o cliente Delphi diretamente.

Migrando do Swagger Codegen

O Swagger Codegen não tem Delphi como alvo. Se o fluxo anterior exportava um cliente C# ou Java genérico e o envolvia para Delphi, o sgcOpenAPI permite gerar o cliente Delphi diretamente a partir da mesma spec e elimina a camada de wrapper.

Migrando do gerador de cliente OpenAPI do mORMot 2

O gerador de cliente OpenAPI do mORMot vive dentro do framework mais amplo. Se sua aplicação usa apenas o gerador e não as camadas SOA / ORM / WebSocket, o sgcOpenAPI oferece um conjunto de componentes autônomo e drop-in sem as units extras. Por outro lado, se você também usa os contratos SOA e o ORM do mORMot, mudar puramente pelo gerador OpenAPI significa reimplementar essas partes, o que o sgcOpenAPI não fornece.

Migrando do TMS XData e OpenAPI Delphi Generator

Se você atualmente usa o importador integrado do XData para gerar clientes a partir de specs Swagger de terceiros, observe que o importador foi separado no projeto open source landgraf-dev/openapi-delphi-generator — as classes dentro do XData estão documentadas como obsoletas. O sgcOpenAPI é um gerador diferente, com suporte comercial, que lê nativamente OpenAPI 3.x, inclui SDKs para as principais plataformas de nuvem e tem como alvo Delphi 7–13 mais C++ Builder.

Migrando de clientes REST escritos à mão (Indy / THTTPClient)

Clientes escritos à mão envelhecem mal quando a superfície da API cresce ou quando o serviço upstream publica novos endpoints. O sgcOpenAPI pode gerar os mesmos DTOs e assinaturas de método a partir da spec publicada em segundos, liberando a lógica escrita à mão para as partes que genuinamente precisam dela (retries personalizados, telemetria, cola de negócio). O código gerado usa transporte HTTP similar, então o modelo mental do desenvolvedor permanece próximo.

Cada célula da matriz acima remete a uma dessas páginas de documentação oficial, repositórios ou notas de versão. Todos os URLs foram verificados no momento da redação.

FonteURL
sgcOpenAPI — página do produtohttps://www.esegece.com/products/openapi/
sgcOpenAPI — recursoshttps://www.esegece.com/products/openapi/features/
sgcOpenAPI — parserhttps://www.esegece.com/products/openapi/parser/
sgcOpenAPI — SDKs pré-compiladoshttps://www.esegece.com/products/openapi/apis/
OpenAPI Generator — página do projetohttps://openapi-generator.tech/
OpenAPI Generator — repositório GitHubhttps://github.com/OpenAPITools/openapi-generator
OpenAPI Generator — lista de geradores suportadoshttps://github.com/OpenAPITools/openapi-generator/blob/master/docs/generators.md
OpenAPI Generator — versõeshttps://github.com/OpenAPITools/openapi-generator/releases
Swagger Codegen — página do produto (swagger.io)https://swagger.io/tools/swagger-codegen/
Swagger Codegen — repositório GitHubhttps://github.com/swagger-api/swagger-codegen
Geradores do Swagger Codegen (templates 3.x)https://github.com/swagger-api/swagger-codegen-generators
mORMot 2 — repositório GitHub (synopse/mORMot2)https://github.com/synopse/mORMot2
mORMot 2 — README (menção a rede e OpenAPI)https://github.com/synopse/mORMot2/blob/master/README.md
mORMot 2 — versõeshttps://github.com/synopse/mORMot2/releases
Fórum Synopse (Object Pascal SOA / ORM / OpenAPI)https://synopse.info/
TMS XData — página do produtohttps://www.tmssoftware.com/site/xdata.asp
TMS XData — índice de documentaçãohttps://doc.tmssoftware.com/biz/xdata/guide/index.html
TMS XData — guia de suporte OpenAPIhttps://doc.tmssoftware.com/biz/xdata/guide/openapi.html
OpenAPI Delphi Generator (antigo importador XData)https://github.com/landgraf-dev/openapi-delphi-generator
Indy — página do projetohttps://www.indyproject.org/
Indy — repositório GitHub (IndySockets/Indy)https://github.com/IndySockets/Indy
Indy — versões (último tag 10.6.3.14)https://github.com/IndySockets/Indy/releases
Docs Embarcadero — System.Net.HttpClient.THTTPClienthttps://docwiki.embarcadero.com/Libraries/Sydney/en/System.Net.HttpClient.THTTPClient
OpenAPI Initiative — repositório da especificaçãohttps://github.com/OAI/OpenAPI-Specification
Especificação OpenAPI — renderizações HTML oficiaishttps://spec.openapis.org/

Experimente sgcOpenAPI

Baixe a edição Trial gratuita e gere seu primeiro SDK Pascal a partir de uma especificação OpenAPI 3.x em minutos.