Automatisez vos téléchargements eSeGeCe avec la nouvelle API de compte

· Applications

Jusqu'à présent, obtenir une version enregistrée signifiait se connecter à votre compte, ouvrir Téléchargements, choisir un produit et cliquer. C'est très bien une fois, mais cela devient pénible lorsque vous souhaitez récupérer le dernier programme d'installation depuis un script de build, un pipeline CI ou un outil de provisionnement.

Nous avons donc ajouté une petite API REST à votre compte, décrite avec OpenAPI 3.0 et accessible sous /api/v1. Vous vous authentifiez une fois avec vos identifiants de compte habituels, vous obtenez un jeton, puis vous listez et téléchargez exactement les fichiers auxquels votre abonnement vous donne droit. Elle réutilise la même logique de droits et de signature que la page Téléchargements du site web, vous voyez donc toujours les mêmes fichiers que dans le navigateur. Et comme l'ensemble est servi par le serveur OpenAPI de sgcWebSockets, nous avons également pu fournir un client Delphi prêt à l'emploi reposant sur sgcOpenAPI.

1. S'authentifier

Envoyez le nom d'utilisateur et le mot de passe de votre compte à POST /api/v1/login. Vous recevez en retour un jeton d'accès Bearer à courte durée de vie (ainsi qu'un jeton de rafraîchissement). Transmettez le jeton d'accès dans l'en-tête Authorization à chaque autre appel.

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

La réponse contient les jetons et un petit profil :

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

Lorsque le jeton d'accès expire, appelez POST /api/v1/refresh avec votre jeton de rafraîchissement pour obtenir une nouvelle paire, ou reconnectez-vous simplement. POST /api/v1/logout révoque un jeton dont vous n'avez plus besoin.

2. Lister les fichiers que vous pouvez télécharger

GET /api/v1/downloads renvoie les fichiers que votre compte peut télécharger. Omettez la version pour la dernière version disponible, passez ?version=2026.5.0 pour une version précise, ou ?version=beta pour la beta actuelle. Utilisez GET /api/v1/products/versions pour découvrir les versions disponibles et leurs dates de sortie.

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

Chaque élément décrit un fichier et inclut une url signée à courte durée de vie qui diffuse les octets :

{
  "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. Télécharger chaque fichier

Chaque élément porte une url prête à l'emploi. Il suffit d'en faire un GET et d'enregistrer les octets — le lien est signé et à courte durée de vie, demandez donc la liste peu de temps avant de télécharger.

curl -L -o setup.exe "URL_FROM_THE_LIST"

Un client Delphi avec sgcOpenAPI

Comme l'API est décrite avec OpenAPI, vous pouvez la piloter depuis Delphi avec le client sgcOpenAPI en quelques lignes seulement : connectez-vous, définissez le jeton Bearer, puis listez (et téléchargez) vos fichiers. Vous pouvez aussi pointer le générateur de code sgcOpenAPI vers la spécification pour générer un client entièrement typé.

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;

Nous fournissons une version complète de ce programme — une version qui se connecte, liste chaque fichier auquel vous avez droit et les télécharge tous — sous la forme d'un .dpr téléchargeable depuis votre compte.

Documentation interactive et où la trouver

Connectez-vous à votre compte et ouvrez l'entrée API dans la barre latérale (/my-account/api). Vous y trouverez un Quickstart avec des exemples Delphi et curl côte à côte, une Swagger UI interactive sur /api/v1/docs, la spécification OpenAPI brute sur /api/v1/openapi.json, ainsi que le client Delphi téléchargeable. La page est disponible dans toutes les langues prises en charge par le portail de comptes.

Une remarque sur la sécurité : les jetons sont à courte durée de vie et révocables, la connexion est limitée en débit, et chaque requête est vérifiée par rapport aux droits de votre compte — exactement comme la page Téléchargements du site web. Les sous-comptes héritent des téléchargements de leur compte parent, tout comme dans le navigateur.

Des questions, des retours ou besoin d'aide pour intégrer cela à votre build ? Contactez-nous — vous obtiendrez une réponse des personnes qui ont écrit le code.