Automatizza i tuoi download eSeGeCe con la nuova API dell'account

· Applicazioni

Finora, ottenere una build registrata significava accedere al tuo account, aprire Downloads, scegliere un prodotto e cliccare. Va bene una volta, ma diventa scomodo quando vuoi recuperare l'ultimo installer da uno script di build, una pipeline CI o uno strumento di provisioning.

Così abbiamo aggiunto una piccola API REST al tuo account, descritta con OpenAPI 3.0 e disponibile sotto /api/v1. Ti autentichi una volta con le tue solite credenziali dell'account, ottieni un token, poi elenchi e scarichi esattamente i file a cui il tuo abbonamento ti dà diritto. Riutilizza la stessa logica di autorizzazione e firma della pagina web Downloads, così vedi sempre gli stessi file che vedresti nel browser. E poiché l'intera cosa è servita dal server OpenAPI di sgcWebSockets, abbiamo potuto fornire anche un client Delphi pronto all'uso basato su sgcOpenAPI.

1. Autenticati

Invia username e password del tuo account a POST /api/v1/login. Ricevi in risposta un token di accesso Bearer a breve durata (più un refresh token). Passa il token di accesso nell'header Authorization in ogni altra chiamata.

curl -X POST https://www.esegece.com/api/v1/login \
  -H "Content-Type: application/json" \
  -d '{"username":"YOUR_USERNAME","password":"YOUR_PASSWORD"}'

La risposta contiene i token e un breve profilo:

{
  "token_type": "Bearer",
  "access_token": "…",
  "refresh_token": "…",
  "expires_in": 3600,
  "user": { "username": "…", "name": "…", "email": "…" }
}

Quando il token di accesso scade, chiama POST /api/v1/refresh con il tuo refresh token per ottenerne una nuova coppia, oppure accedi semplicemente di nuovo. POST /api/v1/logout revoca un token che non ti serve più.

2. Elenca i file che puoi scaricare

GET /api/v1/downloads restituisce i file che il tuo account può scaricare. Ometti la versione per l'ultima release, passa ?version=2026.5.0 per una specifica, oppure ?version=beta per la beta attuale. Usa GET /api/v1/products/versions per scoprire le versioni disponibili e le relative date di rilascio.

curl "https://www.esegece.com/api/v1/downloads" \
  -H "Authorization: Bearer YOUR_ACCESS_TOKEN"

Ogni elemento descrive un file e include un url firmato a breve durata che fa lo streaming dei byte:

{
  "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. Scarica ogni file

Ogni elemento contiene un url pronto all'uso. Basta fare un GET e salvare i byte — il link è firmato e a breve durata, quindi richiedi l'elenco poco prima di scaricare.

curl -L -o setup.exe "URL_FROM_THE_LIST"

Un client Delphi con sgcOpenAPI

Poiché l'API è descritta con OpenAPI, puoi pilotarla da Delphi con il client sgcOpenAPI in poche righe: accedi, imposta il token Bearer, poi elenca (e scarica) i tuoi file. Puoi anche puntare il generatore di codice sgcOpenAPI alla specifica per generare un client completamente tipizzato.

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;

Forniamo una versione completa di questo programma — una che accede, elenca ogni file a cui hai diritto e li scarica tutti — come .dpr scaricabile dal tuo account.

Documentazione interattiva e dove trovarla

Accedi al tuo account e apri la voce API nella barra laterale (/my-account/api). Lì troverai una Quickstart con esempi Delphi e curl affiancati, una Swagger UI interattiva su /api/v1/docs, la specifica OpenAPI grezza su /api/v1/openapi.json e il client Delphi scaricabile. La pagina è disponibile in tutte le lingue supportate dal portale dell'account.

Una nota sulla sicurezza: i token sono a breve durata e revocabili, il login ha un limite di frequenza e ogni richiesta viene verificata rispetto alle autorizzazioni del tuo account — esattamente come la pagina web Downloads. I sotto-account ereditano i download dell'account principale, proprio come avviene nel browser.

Domande, feedback o aiuto per integrarla nella tua build? Contattaci — riceverai una risposta dalle persone che hanno scritto il codice.