Amazon AWS, ponad 280 usług
SDK usług REST obejmujące S3, EC2, Lambda, DynamoDB, SQS, SNS, CloudFormation i inne. Wrzuć moduł do projektu i wywołuj usługę z typowanymi klasami żądań i odpowiedzi.
Zobacz SDK AWS →Wskaż sgcOpenAPI dokument OpenAPI 3.x. Parser go odczytuje, generator tworzy natywne SDK w Object Pascalu, a komponent serwera OpenAPI publikuje Twoje własne endpointy z powrotem jako żywą specyfikację.
Specyfikacja na wejściu, Pascal na wyjściu, a serwer po obu stronach. Z lektorem i napisami. Nic nie jest pobierane, dopóki nie naciśniesz odtwarzania.
Zamień specyfikację w kod Delphi, a kod Delphi w działający serwer.
Nie musisz niczego generować, żeby zacząć. Cztery największe platformy chmurowe są dostarczane jako gotowe do użycia SDK w Pascalu wewnątrz sgcOpenAPI, wygenerowane z oficjalnych specyfikacji i utrzymywane na bieżąco.
SDK usług REST obejmujące S3, EC2, Lambda, DynamoDB, SQS, SNS, CloudFormation i inne. Wrzuć moduł do projektu i wywołuj usługę z typowanymi klasami żądań i odpowiedzi.
Zobacz SDK AWS →Największy zestaw w bibliotece. Maszyny wirtualne Azure, Blob Storage, Functions, Cosmos DB, Key Vault i reszta warstwy sterowania Azure, każda jako wygenerowany klient w Pascalu.
Zobacz SDK Azure →Compute Engine, Cloud Storage, BigQuery, Pub/Sub, Cloud Functions i inne.
Zobacz SDK Google →Office 365, Microsoft Teams, OneDrive, Outlook i Active Directory, przez Graph API.
Zobacz SDK Microsoft →Jeśli API publikuje dokument OpenAPI lub Swagger, generator zamienia go w taki sam typowany moduł Pascala. Nie ma żadnej listy dozwolonych.
Funkcje generatora →Single, Team i Site zawierają parser, generator kodu, komponent serwera OpenAPI i całą bibliotekę gotowych SDK. Nic nie jest sprzedawane osobno.
Wszystkie gotowe SDK →Przewodniki krok po kroku, od publicznej specyfikacji do kompilującego się klienta Delphi
Pięć kroków, wszystkie wewnątrz IDE. Bez Node.js, bez generatora kodu w Javie, bez silnika szablonów do nauczenia.
# one input, one output, and you have a unit
> sgcOpenAPI.exe -i "api.github.com.json" -o "github.pas" -a 2
File successfully created github.pas
# -a 2 wires up token auth -u sets the base url
# -x drops operations -p prunes the classes they used
# -s emits a server stub instead of a client
# exit 0 ok, 5 bad input, 6 bad output, 7 not convertible
uses
github; // the unit you just generated
procedure TForm1.btnReposClick(Sender: TObject);
var
oResponse: TsgcOpenAPI_reposlistforauthenticateduser_Response;
oRepo: TsgcOpenAPI_repository_Class;
begin
GetOpenAPIClient.Authentication.Token.BearerToken := 'ghp_...';
oResponse := GetOpenAPIClient.reposlistforauthenticateduser(
'private', 'owner', 'all', 'full_name', '', 100, 1);
try
if oResponse.IsSuccessful then
for oRepo in oResponse.Successful.Items do
Memo1.Lines.Add(oRepo.Full_name)
else
Memo1.Lines.Add(IntToStr(oResponse.ResponseCode) + ' ' +
oResponse.ResponseError);
finally
oResponse.Free;
end;
end;
uses
sgcHTTP_Server, sgcHTTP_OpenAPI_Server, sgcWebSocket_Server_API_OpenAPI;
procedure TForm1.btnStartClick(Sender: TObject);
begin
FServer := TsgcHTTPServer.Create(Self);
FServer.Port := 8080;
FOpenAPI := TsgcWSAPIServer_OpenAPI.Create(Self);
FOpenAPI.OpenAPIOptions.Endpoint.ServeSpec := True;
FOpenAPI.OpenAPIOptions.Endpoint.ServeSwaggerUI := True;
FOpenAPI.OpenAPIOptions.Validation.ValidateRequest := True;
FOpenAPI.LoadFromFile('petstore.json');
FOpenAPI.OnRequest := OnOpenAPIRequest;
FOpenAPI.Server := FServer;
FServer.Active := True;
end;
// one event, dispatched by operation id
procedure TForm1.OnOpenAPIRequest(Sender: TObject;
const aOperationId: string;
const aContext: TsgcOpenAPIServerContext;
var Handled: Boolean);
begin
Handled := True;
if aOperationId = 'getPetById' then
aContext.RespondJSON(200,
FPets.Values[aContext.PathParamAsString('petId')])
else
Handled := False;
end;
-i na plik lokalny lub adres URL, w JSON lub YAML. Oba są czytane lokalnie, a dokument Swagger 2.0 jest lokalnie konwertowany do OpenAPI 3.TsgcOpenAPI wczytuje dokument do Paths, Komponenty, Security, Servers, Tags i Info, a wszystko, czego nie mógł uwzględnić, zapisuje w Warnings. Zewnętrzne wskaźniki $ref są wcześniej wciągane przez TsgcOpenAPI_Bundle.TsgcOpenAPI_Parser_Client_Pascal dziedziczy po tym czytniku i zapisuje jedną jednostkę Pascala: jedną metodę na operację, jedną klasę odpowiedzi na metodę i klasę dla każdego schematu, z opisami z dokumentu jako komentarzami.Source sgcOpenAPI, od Delphi 7 do RAD Studio 13. Typowane odpowiedzi wymagają XE7 lub nowszego.GetOpenAPIClient, ustaw poświadczenia na Uwierzytelnianiei wywołaj operację. Bazowy adres URL jest już wbudowany z wpisu servers w dokumencie.Generator dziedziczy po czytniku, więc możesz też sam utworzyć TsgcOpenAPI , przejść po sparsowanym modelu i zbudować na nim własne narzędzia. Komponent parsera →
TsgcWSAPIServer_OpenAPI podpina się do TsgcHTTPServer, kieruje przychodzące żądania zgodnie z wczytanym dokumentem, waliduje je, zanim uruchomi się twoja procedura obsługi, i serwuje dokument oraz Swagger UI z tego samego portu.

GET /pets/{petId} trafia do Twojej procedury OnRequest z parametrem aOperationId ustawiona na getPetById. GET /openapi.json zwraca wczytany dokument, a GET /docs otwiera Swagger UI, obie rzeczy włączane przez Endpoint.ServeSpec i Endpoint.ServeSwaggerUI. Endpoint.BasePath przenosi tę parę pod wybrany prefiks.

Wczytaj kontrakt JSON przez LoadFromFile i rozdzielaj po identyfikatorze operacji, albo opisz klasę Pascala atrybutami sgcServiceContract, sgcHttpGet, sgcRoute i sgcFromBody i pozwól TsgcOpenAPICodeFirstScanner zbudują dokument. Code-First wymaga Delphi XE7 lub nowszego. Oba dema znajdziesz w Demos\30.Server\.

Validation.ValidateRequest, ValidateRequired i ValidateRequestBody sprawdzają przychodzące żądanie względem dokumentu, zanim uruchomi się twoja procedura obsługi. OnValidationError podaje ci identyfikator operacji i listę niezgodności oraz flagę Continue , która decyduje, czy żądanie zostanie odrzucone.

Wpisy securityScheme w dokumencie napędzają OnValidateAPIKey, OnValidateBasic i OnValidateBearer. Ty piszesz wyszukiwanie poświadczeń, komponent parsuje żądanie i odpowiada właściwym statusem, kiedy wyszukiwanie mówi nie.
Serwer działa na tym samym serwerze HTTP sgcWebSockets, który hostuje twoje endpointy WebSocket i pliki statyczne. Jeden port, jeden certyfikat TLS, jeden strumień logów. Komponent serwera OpenAPI →
Jeden zintegrowany produkt dla Delphi i C++ Builder: parser OpenAPI 3.x, natywny generator SDK w Pascalu, komponent serwera OpenAPI oraz ponad 1195 gotowych SDK chmurowych. Pełny kod źródłowy, wdrożenie bez opłat licencyjnych. Wybierz według wielkości zespołu.
Jeden programista. Parser, generator, komponent serwera i wszystkie gotowe SDK.
Dwóch programistów. Ten sam kompletny produkt co w Single.
Nieograniczona liczba programistów. Ten sam kompletny produkt co w Single.
sgcOpenAPI jest licencjonowany osobno. Parser, generator kodu, komponent serwera i wszystkie ponad 1195 gotowych SDK są w każdym poziomie.
Porównaj poziomy i cenyZaufali nam programiści Delphi, C++ Builder, Lazarus i .NET na całym świecie.
Wasza biblioteka sgcWebSockets jest bardzo przydatna i łatwa w konfiguracji. Tak trzymać!
sgcWebSockets jest niesamowity, a wasze wsparcie jest najlepsze!
Bardzo dziękuję za pomoc i wsparcie, uwielbiam wasze komponenty.
Parser, generator kodu, komponent serwera OpenAPI i wszystkie gotowe SDK chmurowe, ponad 1 195 z nich, na jednej licencji. Pełne źródła, wdrożenie bez opłat licencyjnych, od Delphi 7 do RAD Studio 13.
sgcOpenAPI to jedna z bibliotek komponentów eSeGeCe dla Delphi, C++ Builder i .NET. Mają wspólne konwencje, są dostarczane z pełnym kodem źródłowym i wdrażane bez opłat licencyjnych.
WebSocket, HTTP/2, MQTT, AMQP, WebRTC, AI oraz ponad 30 integracji API. Serwer HTTP, na którym działa komponent serwera OpenAPI.
Serwer REST, serwer OpenAPI oraz komponenty klienta OpenAPI dla Delphi i C++ Builder. Publikuj API REST na podstawie kontraktu OpenAPI 3.x albo korzystaj z dowolnego API opisanego w OpenAPI. Produkt samodzielny, z dołączonym środowiskiem uruchomieniowym sgcWebSockets Core.
Komponenty HTML i UI po stronie serwera, oparte na Bootstrap 5 i htmx. Zbuduj panel administracyjny lub pulpit dla generowanych klientów REST, bez front-endu w JavaScript.
Surowy transport QUIC oraz klient i serwer HTTP/3, z WebTransport. Udostępniaj generowane klienty REST przez transport QUIC/HTTP-3, dla niższych opóźnień połączenia.
XAdES, PAdES, CAdES i ASiC dla dokumentów, Authenticode, ClickOnce, NuGet i VSIX dla kodu. Podpisuj treści żądań i odpowiedzi, które wymienia twoje API.
Twórz, edytuj, przeglądaj, podpisuj, cenzuruj i weryfikuj pliki PDF w czystym Object Pascalu, bez DLL do wdrożenia. Licencjonowany osobno.
Zaktualizowane komponenty Indy TCP/IP z nowoczesnym TLS, IPv6 i HTTP/2 od Delphi 7 do 13. Warstwa transportowa pod wygenerowanymi klientami.
Pakiety, dodatki i więcej