Do tej pory, aby uzyskać zarejestrowaną kompilację, trzeba było zalogować się do konta, otworzyć Downloads, wybrać produkt i kliknąć. To w porządku raz, ale staje się uciążliwe, gdy chcesz pobrać najnowszy instalator ze skryptu kompilacji, potoku CI lub narzędzia do provisioningu.
Dlatego dodaliśmy do Twojego konta niewielkie REST API, opisane za pomocą OpenAPI 3.0 i dostępne pod /api/v1. Uwierzytelniasz się raz przy użyciu zwykłych danych logowania do konta, otrzymujesz token, a następnie wyświetlasz listę i pobierasz dokładnie te pliki, do których uprawnia Cię subskrypcja. Wykorzystuje tę samą logikę uprawnień i podpisywania co strona Downloads w przeglądarce, więc zawsze widzisz te same pliki, które zobaczyłbyś w przeglądarce. A ponieważ całość jest obsługiwana przez serwer OpenAPI sgcWebSockets, mogliśmy również dostarczyć gotowego do uruchomienia klienta Delphi zbudowanego na sgcOpenAPI.
1. Uwierzytelnianie
Wyślij nazwę użytkownika i hasło konta do POST /api/v1/login. Otrzymasz krótkotrwały token dostępu Bearer (oraz token odświeżający). Przekazuj token dostępu w nagłówku Authorization przy każdym kolejnym wywołaniu.
curl -X POST https://www.esegece.com/api/v1/login \
-H "Content-Type: application/json" \
-d '{"username":"YOUR_USERNAME","password":"YOUR_PASSWORD"}'
Odpowiedź zawiera tokeny oraz krótki profil:
{
"token_type": "Bearer",
"access_token": "…",
"refresh_token": "…",
"expires_in": 3600,
"user": { "username": "…", "name": "…", "email": "…" }
}
Gdy token dostępu wygaśnie, wywołaj POST /api/v1/refresh ze swoim tokenem odświeżającym, aby otrzymać nową parę, lub po prostu zaloguj się ponownie. POST /api/v1/logout unieważnia token, którego już nie potrzebujesz.
2. Wyświetl listę plików, które możesz pobrać
GET /api/v1/downloads zwraca pliki, które Twoje konto może pobrać. Pomiń wersję, aby uzyskać najnowsze wydanie, przekaż ?version=2026.5.0 dla konkretnej wersji lub ?version=beta dla aktualnej wersji beta. Użyj GET /api/v1/products/versions, aby poznać dostępne wersje i ich daty wydania.
curl "https://www.esegece.com/api/v1/downloads" \
-H "Authorization: Bearer YOUR_ACCESS_TOKEN"
Każdy element opisuje jeden plik i zawiera krótkotrwały podpisany url, który strumieniuje bajty:
{
"files": [
{
"product": "sgcWebSockets",
"version": "2026.5.0",
"kind": "release",
"filename": "sgcWebSockets_2026.5.0.exe",
"date": "2026-05-15",
"url": "https://www.esegece.com/api/v1/dl?t=…"
}
],
"version": "2026.5.0"
}
3. Pobierz każdy plik
Każdy element zawiera gotowy do użycia url. Wystarczy wykonać na nim GET i zapisać bajty — link jest podpisany i krótkotrwały, więc poproś o listę na krótko przed pobieraniem.
curl -L -o setup.exe "URL_FROM_THE_LIST"
Klient Delphi z sgcOpenAPI
Ponieważ API jest opisane za pomocą OpenAPI, możesz sterować nim z Delphi przy użyciu klienta sgcOpenAPI w zaledwie kilku liniach: zaloguj się, ustaw token Bearer, a następnie wyświetl listę (i pobierz) swoje pliki. Możesz również skierować generator kodu sgcOpenAPI na specyfikację, aby wygenerować w pełni typowanego klienta.
uses
sgcHTTP_OpenAPI_Client;
var
oClient: TsgcOpenAPI_Client;
oReq: TsgcOpenAPIRequest;
oResp: TsgcOpenAPIResponse;
vToken: string;
begin
oClient := TsgcOpenAPI_Client.Create(nil);
oReq := TsgcOpenAPIRequest.Create;
oResp := TsgcOpenAPIResponse.Create;
try
oClient.SetBaseURL('https://www.esegece.com');
// 1) Log in -> Bearer token
oReq.Method := oapiHttpPOST;
oReq.Endpoint := '/api/v1/login';
oReq.ContentType := 'application/json';
oReq.Body := '{"username":"YOUR_USERNAME","password":"YOUR_PASSWORD"}';
oClient.HTTP_REQUEST(oReq, oResp);
vToken := GetJSONValueFromNode('access_token', oResp.ResponseText);
oClient.Authentication.Token.BearerToken := vToken;
// 2) List the files for the latest release
oReq.Method := oapiHttpGET;
oReq.Endpoint := '/api/v1/downloads';
oReq.Body := '';
oReq.Security := oapiSecurityToken;
oClient.HTTP_REQUEST(oReq, oResp);
Writeln(oResp.ResponseText);
finally
oResp.Free;
oReq.Free;
oClient.Free;
end;
end;
Dostarczamy kompletną wersję tego programu — taką, która loguje się, wyświetla listę każdego uprawnionego pliku i pobiera je wszystkie — jako możliwy do pobrania plik .dpr z Twojego konta.
Interaktywna dokumentacja i gdzie ją znaleźć
Zaloguj się do swojego konta i otwórz pozycję API na pasku bocznym (/my-account/api). Znajdziesz tam Quickstart z przykładami Delphi i curl obok siebie, interaktywny Swagger UI pod /api/v1/docs, surową specyfikację OpenAPI pod /api/v1/openapi.json oraz klienta Delphi do pobrania. Strona jest dostępna w każdym języku obsługiwanym przez portal konta.
Uwaga o bezpieczeństwie: tokeny są krótkotrwałe i odwoływalne, logowanie ma ograniczoną częstotliwość, a każde żądanie jest sprawdzane pod kątem uprawnień Twojego konta — dokładnie tak jak strona Downloads w przeglądarce. Subkonta dziedziczą pliki do pobrania konta nadrzędnego, tak samo jak w przeglądarce.
Pytania, opinie lub pomoc w podłączeniu tego do Twojej kompilacji? Skontaktuj się z nami — otrzymasz odpowiedź od ludzi, którzy napisali ten kod.
