Automatize seus downloads da eSeGeCe com a nova API de conta

· Aplicações

Até agora, obter uma build registrada significava entrar na sua conta, abrir Downloads, escolher um produto e clicar. Isso funciona bem uma vez, mas é incômodo quando você quer baixar o instalador mais recente a partir de um script de build, um pipeline de CI ou uma ferramenta de provisionamento.

Então adicionamos uma pequena API REST à sua conta, descrita com OpenAPI 3.0 e disponível em /api/v1. Você se autentica uma vez com suas credenciais habituais da conta, obtém um token e depois lista e baixa exatamente os arquivos aos quais sua assinatura dá direito. Ela reutiliza a mesma lógica de direitos e assinatura da página web de Downloads, portanto você sempre vê os mesmos arquivos que veria no navegador. E como tudo é servido pelo servidor OpenAPI do sgcWebSockets, também pudemos disponibilizar um cliente Delphi pronto para executar, construído sobre sgcOpenAPI.

1. Autenticar

Envie o nome de usuário e a senha da sua conta para POST /api/v1/login. Você recebe de volta um token de acesso Bearer de curta duração (mais um refresh token). Passe o token de acesso no cabeçalho Authorization em todas as outras chamadas.

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

A resposta traz os tokens e um pequeno perfil:

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

Quando o token de acesso expirar, chame POST /api/v1/refresh com seu refresh token para obter um novo par, ou simplesmente faça login novamente. POST /api/v1/logout revoga um token que você não precisa mais.

2. Liste os arquivos que você pode baixar

GET /api/v1/downloads retorna os arquivos que sua conta pode baixar. Omita a versão para a versão mais recente, passe ?version=2026.5.0 para uma versão específica, ou ?version=beta para a beta atual. Use GET /api/v1/products/versions para descobrir as versões disponíveis e suas datas de lançamento.

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

Cada item descreve um arquivo e inclui uma url assinada de curta duração que transmite os 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. Baixe cada arquivo

Cada item carrega uma url pronta para usar. Basta fazer um GET nela e salvar os bytes — o link é assinado e de curta duração, então solicite a lista pouco antes de baixar.

curl -L -o setup.exe "URL_FROM_THE_LIST"

Um cliente Delphi com sgcOpenAPI

Como a API é descrita com OpenAPI, você pode controlá-la a partir do Delphi com o cliente sgcOpenAPI em apenas algumas linhas: faça login, defina o token Bearer e depois liste (e baixe) seus arquivos. Você também pode apontar o gerador de código do sgcOpenAPI para a especificação a fim de gerar um 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;

Disponibilizamos uma versão completa deste programa — uma que faz login, lista todos os arquivos aos quais você tem direito e baixa todos eles — como um .dpr para download a partir da sua conta.

Documentação interativa e onde encontrá-la

Entre na sua conta e abra a entrada API na barra lateral (/my-account/api). Lá você encontrará um Quickstart com exemplos em Delphi e curl lado a lado, um Swagger UI interativo em /api/v1/docs, a especificação OpenAPI bruta em /api/v1/openapi.json e o cliente Delphi para download. A página está disponível em todos os idiomas que o portal de contas suporta.

Uma observação sobre segurança: os tokens são de curta duração e revogáveis, o login tem limite de taxa e cada requisição é verificada contra os direitos da sua conta — exatamente como na página web de Downloads. As subcontas herdam os downloads da conta principal, assim como fazem no navegador.

Dúvidas, feedback ou ajuda para integrar isso à sua build? Entre em contato — você receberá uma resposta das pessoas que escreveram o código.