Automatiza tus descargas de eSeGeCe con la nueva API de cuenta

· Aplicaciones

Hasta ahora, obtener una compilación registrada significaba iniciar sesión en tu cuenta, abrir Downloads, elegir un producto y hacer clic. Eso está bien una vez, pero resulta incómodo cuando quieres obtener el último instalador desde un script de compilación, una canalización de CI o una herramienta de aprovisionamiento.

Por eso añadimos una pequeña API REST a tu cuenta, descrita con OpenAPI 3.0 y alojada bajo /api/v1. Te autenticas una vez con las credenciales habituales de tu cuenta, obtienes un token y luego listas y descargas exactamente los archivos a los que te da derecho tu suscripción. Reutiliza la misma lógica de derechos y firma que la página web de Downloads, así que siempre ves los mismos archivos que verías en el navegador. Y como todo esto lo sirve el servidor OpenAPI de sgcWebSockets, también pudimos ofrecer un cliente Delphi listo para ejecutar construido sobre sgcOpenAPI.

1. Autenticarse

Envía el nombre de usuario y la contraseña de tu cuenta a POST /api/v1/login. Recibes a cambio un token de acceso Bearer de corta duración (más un token de actualización). Pasa el token de acceso en la cabecera Authorization en cada una de las demás llamadas.

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

La respuesta incluye los tokens y un pequeño perfil:

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

Cuando el token de acceso caduque, llama a POST /api/v1/refresh con tu token de actualización para obtener un nuevo par, o simplemente vuelve a iniciar sesión. POST /api/v1/logout revoca un token que ya no necesites.

2. Listar los archivos que puedes descargar

GET /api/v1/downloads devuelve los archivos que tu cuenta puede descargar. Omite la versión para la última publicación, pasa ?version=2026.5.0 para una concreta, o ?version=beta para la beta actual. Usa GET /api/v1/products/versions para descubrir las versiones disponibles y sus fechas de publicación.

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

Cada elemento describe un archivo e incluye una url firmada de corta duración que transmite los bytes:

{
  "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. Descargar cada archivo

Cada elemento lleva una url lista para usar. Simplemente haz un GET y guarda los bytes — el enlace está firmado y es de corta duración, así que solicita la lista poco antes de descargar.

curl -L -o setup.exe "URL_FROM_THE_LIST"

Un cliente Delphi con sgcOpenAPI

Como la API está descrita con OpenAPI, puedes manejarla desde Delphi con el cliente sgcOpenAPI en solo unas pocas líneas: inicia sesión, establece el token Bearer y luego lista (y descarga) tus archivos. También puedes apuntar el generador de código de sgcOpenAPI a la especificación para generar un cliente totalmente tipado.

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;

Entregamos una versión completa de este programa — una que inicia sesión, lista todos los archivos a los que tienes derecho y los descarga todos — como un .dpr descargable desde tu cuenta.

Documentación interactiva y dónde encontrarla

Inicia sesión en tu cuenta y abre la entrada API en la barra lateral (/my-account/api). Allí encontrarás un Inicio rápido con ejemplos de Delphi y curl en paralelo, una Swagger UI interactiva en /api/v1/docs, la especificación OpenAPI en bruto en /api/v1/openapi.json y el cliente Delphi descargable. La página está disponible en todos los idiomas que admite el portal de la cuenta.

Una nota sobre seguridad: los tokens son de corta duración y revocables, el inicio de sesión tiene límite de frecuencia, y cada solicitud se comprueba contra los derechos de tu cuenta — exactamente igual que la página web de Downloads. Las subcuentas heredan las descargas de su cuenta principal, igual que en el navegador.

¿Preguntas, comentarios o ayuda para integrar esto en tu compilación? Ponte en contacto — recibirás respuesta de las personas que escribieron el código.