Narzędzia OpenAPI klient/serwer dla Delphi — przewodnik porównawczy

Neutralny, oparty na źródłach przegląd opcji generatorów klientów OpenAPI dostępnych dla programistów Delphi i C++ Builder w 2026 roku: sgcOpenAPI, OpenAPI Generator, Swagger Codegen, mORMot 2, TMS XData wraz z OpenAPI Delphi Generator oraz ścieżka ręcznego kodowania klienta REST. Każde stwierdzenie funkcji jest powiązane z oficjalną dokumentacją projektu.

Sześć ścieżek od specyfikacji OpenAPI do działającego kodu Delphi

Akapit podsumowania każdej opcji wraz z linkiem do oficjalnej dokumentacji lub repozytorium. Szczegółowe porównanie znajduje się w poniższej matrycy.

OpenAPI Generator

Społeczność OpenAPI Tools · Apache 2.0 (open source)

Open-source narzędzie w Javie, pierwotnie sforkowane ze Swagger Codegen, zapewniające ponad 60 generatorów klientów oraz ponad 40 generatorów szkieletów serwerów. Generuje klientów i/lub serwery dla C, C#, C++ (cpp-restsdk, Qt5, Oat++, Tizen, Unreal Engine 4), Go, Java, Kotlin, PHP, Python, Rust, TypeScript i wielu innych. Oficjalna lista generatorów nie zawiera celu Delphi / Object Pascal / Free Pascal.

Strona oficjalna

Swagger Codegen

SmartBear / społeczność · Apache 2.0 (open source)

Pierwotny projekt generatora kodu w Javie od SmartBear, z którego w 2018 roku sforkowano OpenAPI Generator. Obsługuje 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 i TypeScript. Linia 3.x obsługuje OpenAPI 3.0; linia 2.x obsługuje wyłącznie OpenAPI 2.0 (Swagger). W żadnej linii nie ma generatora Delphi ani Object Pascal.

Strona oficjalna

Generator klientów OpenAPI mORMot 2

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

mORMot 2 dostarcza mormot.net.openapi.pas, który odczytuje dokument OpenAPI 3.x lub Swagger 2.0 (z pliku lub URL) i emituje jednostki klienta FPC / Delphi Pascal — wysokopoziomowe rekordy i tablice dynamiczne jako DTO, wyliczenia Pascala dla wartości enum oraz tłumaczenie kodów statusu HTTP na wyjątki. Jednostka jest przeznaczona dla FPC i Delphi 7 / 2009 i nowszych, działa jako część szerszego frameworku SOA / ORM mORMot.

Strona oficjalna

TMS XData i OpenAPI Delphi Generator

TMS Software / Landgraf Software · Komercyjne (XData) / Apache 2.0 + Commons Clause (generator)

TMS XData to komercyjny framework Delphi do zdalnej komunikacji REST / JSON / ORM. Serwer XData może publikować dokument OpenAPI (dawniej Swagger) pod /openapi/swagger.json dla własnych punktów końcowych i współpracuje ze SwaggerUI / Redoc. Towarzyszący OpenAPI Delphi Generator (pierwotnie dołączony do XData, teraz odrębny projekt open-source w landgraf-dev/openapi-delphi-generator) odczytuje dokumenty Swagger 2.0 / OpenAPI 3.0 i emituje interfejsy Delphi oraz klasy DTO do użycia z TXDataClient.

Strona oficjalna

Ręcznie kodowani klienci REST (Indy / THTTPClient)

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

Częsta praktyka: programiści piszą klienta REST ręcznie, używając TIdHTTP (Indy) lub System.Net.HttpClient.THTTPClient (dołączony do Delphi). Bez generowania kodu i bez schematu; ręczne mapowanie JSON za pomocą jednostek JSON RTL (lub TJSONObject). Uwierzytelnianie, logika ponawiania i paginacja również są pisane ręcznie.

Strona oficjalna

Porównanie funkcji obok siebie

Znak zaznaczenia () oznacza, że projekt dokumentuje natywne wsparcie. Myślnik () oznacza, że projekt nie zapewnia tego natywnie. Tylda (~) oznacza częściowo / przez rozszerzenie / nie udokumentowane wprost — w sekcji Źródła znajdziesz to, co udało nam się zweryfikować.

Generatory, środowisko wykonawcze, licencjonowanie

12 wierszy
Funkcja sgcOpenAPI OpenAPI Generator Swagger Codegen mORMot 2 OpenAPI client generator TMS XData & OpenAPI Delphi Generator Hand-coded REST clients (Indy / THTTPClient)
Generuje klienta Delphi Natywny klient Object Pascal z OpenAPI 3.x
Generuje kod C++ Builder Cele C++ Builder VCL / FMX (BCC32 / BCC64) ~ ~ ~ ~
Generuje szkielety serwera Rusztowanie po stronie serwera ze specyfikacji OpenAPI
Klient HTTP/2 Natywny transport HTTP/2 w wygenerowanym kliencie ~ ~ ~ ~
Typowane DTO JSON Silnie typowane klasy / rekordy / wyliczenia ~
Pomocniki OAuth2 / JWT Wbudowane przepływy OAuth2 i pomocniki JWT ~
Pomocniki async / sync Asynchroniczne i synchroniczne wzorce wywołań ~
Wieloplatformowe środowisko Win / macOS / Linux / iOS / Android
Dołączone SDK dostawców Gotowe AWS / Azure / GCP / Microsoft Graph
Dozwolone użycie komercyjne Licencja zezwala na zamknięto-źródłowe użycie komercyjne
Aktywna konserwacja Wydanie lub tagowana aktywność w ostatnich 12–18 miesiącach ~
Model licencji Typ licencji Komercyjne Apache 2.0 (open source) Apache 2.0 (open source) MPL / GPL / LGPL Komercyjne (XData) + Apache 2.0 + CC (generator) BSD / MPL (Indy) · RAD Studio EULA (THTTPClient)
Udokumentowane natywne wsparcie Niezapewnione natywnie ~ Częściowe / przez rozszerzenie / niezweryfikowane

Uczciwe dopasowanie dla każdej opcji

Każda z opcji ma realne grono odbiorców. Właściwy wybór zależy od tego, czy potrzebujesz szkieletów serwera obok klientów, jakie łańcuchy narzędzi Pascala obsługujesz, jaką licencję preferujesz i czy dołączone SDK dostawców oszczędzają ci czas.

Wybierz sgcOpenAPI

Wybierz sgcOpenAPI, gdy chcesz jednego komercyjnego narzędzia, które generuje kod klienta dla Delphi 7–13 i C++ Builder z dowolnej specyfikacji OpenAPI 3.x lub Swagger 2.x, gdy chcesz gotowych SDK Pascala dla AWS, Azure, Google Cloud lub Microsoft Graph już w pakiecie, gdy celujesz w VCL oraz FireMonkey dla macOS / Linux / iOS / Android oraz gdy potrzebujesz zerowych zewnętrznych zależności środowiska wykonawczego poza jednostkami sgcOpenAPI.

Wybierz OpenAPI Generator

Wybierz OpenAPI Generator, gdy twój zespół buduje klientów lub szkielety serwera w językach innych niż Delphi — C#, Java, Go, TypeScript, Rust, Python — z tej samej specyfikacji OpenAPI, gdy potrzebujesz zarówno klientów, jak i szkieletów serwera z jednego narzędzia lub gdy zależy ci na licencji Apache-2.0 i dużej społeczności współautorów szablonów.

Wybierz Swagger Codegen

Wybierz Swagger Codegen, gdy już używasz ekosystemu SmartBear / Swagger (SwaggerHub, Swagger Editor) od początku do końca, gdy chcesz najbliższego oficjalnie utrzymywanego następcy historycznego generatora kodu Swagger 2.0 i gdy twoje cele to popularne języki JVM / .NET / skryptowe, a nie Delphi.

Wybierz generator klientów OpenAPI mORMot 2

Wybierz generator OpenAPI mORMot 2, gdy twój projekt już używa mORMot do ORM, SOA lub hostingu, gdy chcesz open-source’owego generatora kodu natywnego dla Pascala na licencji MPL / GPL / LGPL lub gdy celujesz w FPC na Linux / BSD / macOS zarówno dla generatora klienta, jak i wynikowego kodu.

Wybierz TMS XData i OpenAPI Delphi Generator

Wybierz TMS XData, gdy budujesz również serwer w Delphi i chcesz serwer + klienta + zdalną komunikację ORM od jednego dostawcy, gdy wymogiem jest przeglądanie własnych kontraktów usług przez SwaggerUI / Redoc lub gdy już posiadasz licencję TMS Business / All-Access. Wybierz samodzielny OpenAPI Delphi Generator, gdy potrzebujesz tylko generowania kodu po stronie klienta i preferujesz licencję Apache 2.0 + Commons Clause.

Wybierz ręcznie kodowanych klientów REST (Indy / THTTPClient)

Wybierz ręcznie kodowanego klienta REST, gdy powierzchnia API jest niewielka (kilka punktów końcowych), gdy z powodów licencyjnych lub zgodności nie możesz dystrybuować komponentów innych firm lub gdy API nie ma opublikowanej specyfikacji OpenAPI, a generator niczego ci nie da. Indy i THTTPClient są dostarczane z RAD Studio, więc nie ma dodatkowej zależności.

Przejście na sgcOpenAPI — co się różni

Krótkie uwagi o różnicach, jeśli przechodzisz z jednej z powyższych opcji. Nie konfrontacyjne — po prostu praktyczne mapowanie.

Przejście z OpenAPI Generator

OpenAPI Generator nie celuje w Delphi, więc "migracja" oznacza tutaj generowanie klientów C# / Java / TS obok klienta Delphi sgcOpenAPI z tej samej specyfikacji. Jeśli wcześniejsze rozwiązanie polegało na opakowaniu C# zbudowanym przez OpenAPI Generator i wywoływanym z Delphi przez COM lub REST, sgcOpenAPI usuwa tę warstwę, tworząc klienta Delphi bezpośrednio.

Przejście ze Swagger Codegen

Swagger Codegen nie celuje w Delphi. Jeśli twój wcześniejszy przepływ pracy eksportował ogólnego klienta C# lub Java i opakowywał go dla Delphi, sgcOpenAPI pozwala wygenerować klienta Delphi bezpośrednio z tej samej specyfikacji i usuwa warstwę opakowania.

Przejście z generatora klientów OpenAPI mORMot 2

Generator klientów OpenAPI mORMot znajduje się wewnątrz szerszego frameworku. Jeśli twoja aplikacja używa tylko generatora, a nie warstw SOA / ORM / WebSocket, sgcOpenAPI daje samodzielny, gotowy zestaw komponentów bez dodatkowych jednostek. Z drugiej strony, jeśli używasz również kontraktów SOA i ORM mORMot, przejście tylko dla generatora OpenAPI oznacza ponowne wdrożenie tych elementów, których sgcOpenAPI nie zapewnia.

Przejście z TMS XData i OpenAPI Delphi Generator

Jeśli obecnie używasz wbudowanego importera XData do generowania klientów ze specyfikacji Swagger innych firm, pamiętaj, że importer został wydzielony do open-source’owego projektu landgraf-dev/openapi-delphi-generator — klasy wewnętrzne w XData są udokumentowane jako przestarzałe. sgcOpenAPI to inny, komercyjnie wspierany generator, który natywnie odczytuje OpenAPI 3.x, dostarcza SDK dla głównych platform chmurowych i celuje w Delphi 7–13 oraz C++ Builder.

Przejście z ręcznie kodowanych klientów REST (Indy / THTTPClient)

Ręcznie kodowani klienci źle się starzeją, gdy powierzchnia API rośnie lub gdy nadrzędna usługa publikuje nowe punkty końcowe. sgcOpenAPI w kilka sekund generuje te same DTO i sygnatury metod z opublikowanej specyfikacji, uwalniając ręcznie pisaną logikę do tych części, które naprawdę tego wymagają (niestandardowe ponawianie, telemetria, integracja biznesowa). Wygenerowany kod używa podobnego transportu HTTP, więc model myślowy programisty pozostaje bliski.

Każde stwierdzenie z linkiem

Każda komórka powyższej matrycy odsyła do jednej z tych stron oficjalnej dokumentacji, repozytoriów lub notatek o wydaniach. Wszystkie URL-e zostały sprawdzone HEAD w czasie pisania.

SourceURL
sgcOpenAPI — strona produktuhttps://www.esegece.com/products/openapi/
sgcOpenAPI — funkcjehttps://www.esegece.com/products/openapi/features/
sgcOpenAPI — parserhttps://www.esegece.com/products/openapi/parser/
sgcOpenAPI — gotowe SDKhttps://www.esegece.com/products/openapi/apis/
OpenAPI Generator — strona projektuhttps://openapi-generator.tech/
OpenAPI Generator — repozytorium GitHubhttps://github.com/OpenAPITools/openapi-generator
OpenAPI Generator — lista obsługiwanych generatorówhttps://github.com/OpenAPITools/openapi-generator/blob/master/docs/generators.md
OpenAPI Generator — wydaniahttps://github.com/OpenAPITools/openapi-generator/releases
Swagger Codegen — strona produktu (swagger.io)https://swagger.io/tools/swagger-codegen/
Swagger Codegen — repozytorium GitHubhttps://github.com/swagger-api/swagger-codegen
Swagger Codegen Generators (szablony 3.x)https://github.com/swagger-api/swagger-codegen-generators
mORMot 2 — repozytorium GitHub (synopse/mORMot2)https://github.com/synopse/mORMot2
mORMot 2 — README (wzmianka o sieci i OpenAPI)https://github.com/synopse/mORMot2/blob/master/README.md
mORMot 2 — wydaniahttps://github.com/synopse/mORMot2/releases
Forum Synopse (Object Pascal SOA / ORM / OpenAPI)https://synopse.info/
TMS XData — strona produktuhttps://www.tmssoftware.com/site/xdata.asp
TMS XData — spis dokumentacjihttps://doc.tmssoftware.com/biz/xdata/guide/index.html
TMS XData — przewodnik wsparcia OpenAPIhttps://doc.tmssoftware.com/biz/xdata/guide/openapi.html
OpenAPI Delphi Generator (dawniej importer XData)https://github.com/landgraf-dev/openapi-delphi-generator
Indy — strona główna projektuhttps://www.indyproject.org/
Indy — repozytorium GitHub (IndySockets/Indy)https://github.com/IndySockets/Indy
Indy — wydania (najnowsze tagowane 10.6.3.14)https://github.com/IndySockets/Indy/releases
Dokumentacja Embarcadero — System.Net.HttpClient.THTTPClienthttps://docwiki.embarcadero.com/Libraries/Sydney/en/System.Net.HttpClient.THTTPClient
OpenAPI Initiative — repozytorium specyfikacjihttps://github.com/OAI/OpenAPI-Specification
OpenAPI Specification — autorytatywne renderingi HTMLhttps://spec.openapis.org/

Wypróbuj sgcOpenAPI

Pobierz bezpłatną edycję Trial i wygeneruj swój pierwszy SDK Pascala ze specyfikacji OpenAPI 3.x w kilka minut.