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

15 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
Runtime de servidor Delphi nativo Componente de servidor HTTP embarcado que hospeda os endpoints gerados em um processo Delphi / C++ Builder ~
Publica documento OpenAPI ao vivo O servidor expõe seu próprio openapi.json / openapi.yaml em tempo de execução para descoberta e SwaggerUI / Redoc
Validação de requisição / resposta no servidor Requisições de entrada e respostas de saída validadas em tempo de execução contra os schemas 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

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.