Delphi için OpenAPI istemci/sunucu araçları — karşılaştırma kılavuzu

2026'da Delphi ve C++ Builder geliştiricilerinin kullanımına sunulan OpenAPI istemci ve kod üretme seçeneklerinin tarafsız, kaynak gösterimli bir incelemesi: sgcOpenAPI, OpenAPI Generator, Swagger Codegen, mORMot 2, tamamlayıcısı OpenAPI Delphi Generator ile TMS XData ve elle kodlanmış REST istemci yolu. Her özellik iddiası, projenin kendi belgelerine bağlanır.

Bir OpenAPI spesifikasyonundan çalışan Delphi koduna giden altı yol

Her seçeneğin tek paragraflık bir özeti, resmi belgelere veya depoya bir bağlantıyla birlikte. Ayrıntılı karşılaştırma aşağıdaki matristedir.

OpenAPI Generator

OpenAPI Tools topluluğu · Apache 2.0 (açık kaynak)

Başlangıçta Swagger Codegen'den çatallanmış, 60'tan fazla istemci üreticisi ve 40'tan fazla sunucu taslak üreticisi sağlayan açık kaynaklı bir Java aracı. C, C#, C++ (cpp-restsdk, Qt5, Oat++, Tizen, Unreal Engine 4), Go, Java, Kotlin, PHP, Python, Rust, TypeScript ve daha pek çoğu için istemciler ve/veya sunucular üretir. Resmi üretici listesi bir Delphi / Object Pascal / Free Pascal hedefi içermez.

Resmi sayfa

Swagger Codegen

SmartBear / topluluk · Apache 2.0 (açık kaynak)

SmartBear'ın, OpenAPI Generator'ın 2018'de çatallandığı orijinal Java kod üreticisi projesi. 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 ve TypeScript'i destekler. 3.x serisi OpenAPI 3.0'ı destekler; 2.x serisi yalnızca OpenAPI 2.0'ı (Swagger) destekler. Her iki seride de Delphi veya Object Pascal üreticisi yoktur.

Resmi sayfa

mORMot 2 OpenAPI istemci üreticisi

Arnaud Bouchez / Synopse · MPL / GPL / LGPL (açık kaynak)

mORMot 2, bir OpenAPI 3.x veya Swagger 2.0 belgesini (dosya veya URL) okuyan ve FPC / Delphi Pascal istemci birimleri üreten mormot.net.openapi.pas dosyasını sunar — DTO olarak üst düzey kayıtlar ve dinamik diziler, enum değerleri için Pascal numaralandırmaları ve HTTP durum kodlarının istisnalara çevrilmesi. Birim, FPC ile Delphi 7 / 2009 ve sonrasını hedefler ve daha geniş mORMot SOA / ORM çerçevesinin bir parçası olarak çalışır.

Resmi sayfa

TMS XData ve OpenAPI Delphi Generator

TMS Software / Landgraf Software · Ticari (XData) / Apache 2.0 + Commons Clause (üretici)

TMS XData, ticari bir Delphi REST / JSON / ORM uzaktan erişim çerçevesidir. Bir XData sunucusu, kendi uç noktaları için /openapi/swagger.json adresinde bir OpenAPI (eski adıyla Swagger) belgesi yayınlayabilir ve SwaggerUI / Redoc ile eşleşir. Tamamlayıcı OpenAPI Delphi Generator (başlangıçta XData ile birlikte gelirdi, şimdi landgraf-dev/openapi-delphi-generator adresinde ayrı bir açık kaynak projesi), Swagger 2.0 / OpenAPI 3.0 belgelerini tüketir ve TXDataClient ile kullanım için Delphi arabirimleri ile DTO sınıfları üretir.

Resmi sayfa

Elle kodlanmış REST istemcileri (Indy / THTTPClient)

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

Yaygın bir gerçek: geliştiriciler REST istemcisini TIdHTTP (Indy) veya System.Net.HttpClient.THTTPClient (Delphi ile birlikte gelir) kullanarak elle yazar. Kod üretimi yok, şema yok; RTL JSON birimleriyle (veya TJSONObject) manuel JSON sıralama. Kimlik doğrulama, yeniden deneme mantığı ve sayfalama da elle yapılır.

Resmi sayfa

Yan yana özellik karşılaştırması

Bir onay işareti (), projenin yerel desteği belgelediği anlamına gelir. Bir tire (), projenin bunu yerel olarak sağlamadığı anlamına gelir. Bir tilde (~), kısmi / eklenti aracılığıyla / açıkça belgelenmemiş anlamına gelir — doğrulayabildiklerimiz için Kaynaklar bölümüne bakın.

Üreticiler, çalışma zamanı, lisanslama

15 satır
Özellik sgcOpenAPI OpenAPI Generator Swagger Codegen mORMot 2 OpenAPI istemci üreticisi TMS XData ve OpenAPI Delphi Generator Elle kodlanmış REST istemcileri (Indy / THTTPClient)
Delphi istemcisi üretir OpenAPI 3.x'ten yerel Object Pascal istemcisi
C++ Builder kodu üretir C++ Builder VCL / FMX hedefleri (BCC32 / BCC64) ~ ~ ~ ~
Sunucu taslakları üretir Bir OpenAPI spesifikasyonundan sunucu tarafı iskelet
Yerel Delphi sunucu çalışma zamanı Üretilen uç noktaları bir Delphi / C++ Builder işleminde barındıran gömülü HTTP sunucu bileşeni ~
Canlı OpenAPI belgesi yayınlar Sunucu, keşif ve SwaggerUI / Redoc için çalışma zamanında kendi openapi.json / openapi.yaml belgesini sunar
Sunucu tarafı istek / yanıt doğrulaması Gelen istekler ve giden yanıtlar çalışma zamanında OpenAPI şemalarına göre doğrulanır ~ ~ ~ ~
HTTP/2 istemcisi Üretilen istemcide yerel HTTP/2 taşıması ~ ~ ~ ~
Tipli JSON DTO'ları Güçlü tipli sınıflar / kayıtlar / enum'lar ~
OAuth2 / JWT yardımcıları Yerleşik OAuth2 akışları ve JWT yardımcıları ~
Asenkron / senkron yardımcılar Hem asenkron hem de senkron çağrı kalıpları ~
Çok platformlu çalışma zamanı Win / macOS / Linux / iOS / Android
Pakete dahil sağlayıcı SDK'leri AWS / Azure / GCP / Microsoft Graph önceden derlenmiş
Ticari kullanıma izin verilir Lisans, kapalı kaynak ticari kullanıma izin verir
Etkin bakım Son 12–18 ayda sürüm veya etiketli etkinlik ~
Lisans modeli Lisans türü Ticari Apache 2.0 (açık kaynak) Apache 2.0 (açık kaynak) MPL / GPL / LGPL Ticari (XData) + Apache 2.0 + CC (üretici) BSD / MPL (Indy) · RAD Studio EULA (THTTPClient)
Belgelenen yerel destek Yerel olarak sağlanmaz ~ Kısmi / eklenti aracılığıyla / doğrulanmamış

sgcOpenAPI'ye geçiş — neler farklıdır

Yukarıdaki seçeneklerden birinden geçiş yapıyorsanız farklılıklar hakkında kısa notlar. Karşıt değil — yalnızca pratik eşleme.

OpenAPI Generator'dan geçiş

OpenAPI Generator, Delphi'yi hedeflemez, bu nedenle buradaki "geçiş", aynı spesifikasyondan sgcOpenAPI Delphi istemcisinin yanı sıra C# / Java / TS istemcileri üretmek anlamına gelir. Önceki kurulumunuz, Delphi'den COM veya REST aracılığıyla tüketilen, OpenAPI-Generator ile oluşturulmuş bir C# sarmalayıcıysa, sgcOpenAPI Delphi istemcisini doğrudan üreterek bu katmanı kaldırır.

Swagger Codegen'den geçiş

Swagger Codegen, Delphi'yi hedeflemez. Önceki iş akışınız genel bir C# veya Java istemcisi dışa aktardıysa ve onu Delphi için sardıysa, sgcOpenAPI Delphi istemcisini doğrudan aynı spesifikasyondan üretmenize olanak tanır ve sarmalayıcı katmanını kaldırır.

mORMot 2 OpenAPI istemci üreticisinden geçiş

mORMot'un OpenAPI istemci üreticisi, daha geniş çerçevenin içinde yer alır. Uygulamanız yalnızca üreticiyi kullanıyor ve SOA / ORM / WebSocket katmanlarını kullanmıyorsa, sgcOpenAPI size ek birimler olmadan bağımsız, hazır bir bileşen seti sunar. Buna karşılık, mORMot'un SOA sözleşmelerini ve ORM'sini de kullanıyorsanız, yalnızca OpenAPI üreticisi için geçiş yapmak, sgcOpenAPI'nin sağlamadığı bu parçaları yeniden uygulamak anlamına gelir.

TMS XData ve OpenAPI Delphi Generator'dan geçiş

Şu anda üçüncü taraf Swagger spesifikasyonlarından istemciler üretmek için XData'nın yerleşik içe aktarıcısını kullanıyorsanız, içe aktarıcının açık kaynaklı landgraf-dev/openapi-delphi-generator projesine ayrıldığını unutmayın — XData içindeki sınıflar kullanımdan kaldırılmış olarak belgelenmiştir. sgcOpenAPI; OpenAPI 3.x'i yerel olarak okuyan, başlıca bulut platformları için SDK'ler içeren ve Delphi 7–13 ile C++ Builder'ı hedefleyen farklı, ticari olarak desteklenen bir üreticidir.

Elle kodlanmış REST istemcilerinden (Indy / THTTPClient) geçiş

API yüzeyi büyüdüğünde veya yukarı akış hizmeti yeni uç noktalar yayınladığında elle kodlanmış istemciler kötü yaşlanır. sgcOpenAPI, yayınlanan spesifikasyondan aynı DTO'ları ve metot imzalarını saniyeler içinde üretebilir, böylece elle kodlanmış mantığı gerçekten ihtiyaç duyan parçalar için serbest bırakır (özel yeniden denemeler, telemetri, iş yapıştırması). Üretilen kod benzer HTTP taşıması kullanır, bu nedenle geliştiricinin zihinsel modeli yakın kalır.

Her iddia, bağlantılı

Yukarıdaki matristeki her hücre, bu resmi belge sayfalarından, depolardan veya sürüm notlarından birine dayanır. Tüm URL'ler yazıldığı sırada HEAD ile kontrol edildi.

KaynakURL
sgcOpenAPI — ürün sayfasıhttps://www.esegece.com/products/openapi/
sgcOpenAPI — özelliklerhttps://www.esegece.com/products/openapi/features/
sgcOpenAPI — ayrıştırıcıhttps://www.esegece.com/products/openapi/parser/
sgcOpenAPI — önceden derlenmiş SDK'lerhttps://www.esegece.com/products/openapi/apis/
OpenAPI Generator — proje ana sayfasıhttps://openapi-generator.tech/
OpenAPI Generator — GitHub deposuhttps://github.com/OpenAPITools/openapi-generator
OpenAPI Generator — desteklenen üreticiler listesihttps://github.com/OpenAPITools/openapi-generator/blob/master/docs/generators.md
OpenAPI Generator — sürümlerhttps://github.com/OpenAPITools/openapi-generator/releases
Swagger Codegen — ürün sayfası (swagger.io)https://swagger.io/tools/swagger-codegen/
Swagger Codegen — GitHub deposuhttps://github.com/swagger-api/swagger-codegen
Swagger Codegen Generators (3.x şablonları)https://github.com/swagger-api/swagger-codegen-generators
mORMot 2 — GitHub deposu (synopse/mORMot2)https://github.com/synopse/mORMot2
mORMot 2 — README (ağ ve OpenAPI bahsi)https://github.com/synopse/mORMot2/blob/master/README.md
mORMot 2 — sürümlerhttps://github.com/synopse/mORMot2/releases
Synopse forumu (Object Pascal SOA / ORM / OpenAPI)https://synopse.info/
TMS XData — ürün sayfasıhttps://www.tmssoftware.com/site/xdata.asp
TMS XData — belge dizinihttps://doc.tmssoftware.com/biz/xdata/guide/index.html
TMS XData — OpenAPI destek kılavuzuhttps://doc.tmssoftware.com/biz/xdata/guide/openapi.html
OpenAPI Delphi Generator (eski adıyla XData içe aktarıcısı)https://github.com/landgraf-dev/openapi-delphi-generator
Indy — proje ana sayfasıhttps://www.indyproject.org/
Indy — GitHub deposu (IndySockets/Indy)https://github.com/IndySockets/Indy
Indy — sürümler (en son etiket 10.6.3.14)https://github.com/IndySockets/Indy/releases
Embarcadero belgeleri — System.Net.HttpClient.THTTPClienthttps://docwiki.embarcadero.com/Libraries/Sydney/en/System.Net.HttpClient.THTTPClient
OpenAPI Initiative — spesifikasyon deposuhttps://github.com/OAI/OpenAPI-Specification
OpenAPI Specification — yetkili HTML görüntülemelerihttps://spec.openapis.org/

sgcOpenAPI'yi Deneyin

Ücretsiz Trial sürümünü indirin ve ilk Pascal SDK'nizi bir OpenAPI 3.x spesifikasyonundan dakikalar içinde üretin.