SYSLED DevelopersTodos os guias

Exemplos server-side

Exemplos em cURL, JavaScript e Python com cuidados de credenciais.

Perfil público de consultasRevisão:

Os exemplos usam somente variáveis de ambiente e não contêm host ou token real. O endpoint coloca o token na URL; evite curl -v, tracing de URL e logs de requisição em ambientes compartilhados. Executar qualquer exemplo faz uma consulta real quando as variáveis contêm credenciais válidas: use somente um ambiente autorizado. Os SDKs abaixo são candidatos locais, não pacotes publicados.

cURL

: "${SYSLED_URL:?defina o host HTTPS}" "${SYSLED_TOKEN:?defina o token em segredo}"

curl --fail --silent --proto '=https' --max-time 10 --connect-timeout 5 \
  --request POST \
  --header 'Content-Type: application/json' \
  --header 'Accept: application/json' \
  --data '{"limit":24,"offset":0}' \
  "${SYSLED_URL%/}/api/v1/${SYSLED_TOKEN}/products.list" 2>/dev/null || {
    printf '%s\n' 'Consulta SYSLED falhou; confira host, token, escopo e conectividade sem expor a URL.' >&2
    exit 1
  }

O comando só admite HTTPS, não segue redirects e não imprime o erro bruto de transporte. O token ainda pode aparecer na lista de processos de algumas plataformas. Para produção, prefira um cliente server-side que controle telemetria e redija a URL. --fail rejeita HTTP 4xx/5xx, mas não valida o envelope JSON: para isso, use os clientes abaixo.

JavaScript / Node.js

Em um projeto server-side, salve o exemplo como exemplo.mjs e execute node exemplo.mjs com Node.js 22.18+ ou 24+. O suporte nativo a TypeScript é necessário para importar o código-fonte do SDK sem compilar. Não instale um pacote de nome parecido de um registro público.

import { SysledClient } from "./sdk/typescript/src/index.ts";

try {
  const sysled = new SysledClient(); // SYSLED_URL e SYSLED_TOKEN, somente no servidor
  const page = await sysled.call("products.list", { limit: 24, offset: 0 });
  if (!Array.isArray(page.items)) throw new Error("Resultado inesperado");
  console.log(page.items.length, page.next_cursor ?? null);
} catch {
  // Não imprima o erro original, a URL nem o corpo da resposta.
  console.error("Consulta SYSLED falhou; confira ambiente, credenciais e contrato.");
  process.exitCode = 1;
}

O SDK TypeScript candidato encapsula validação do host/token/envelope, timeout e bloqueio de redirects; não repete chamadas automaticamente. O resultado continua parcial: valide os campos necessários ao seu consumidor.

Python

Em um projeto server-side, salve o exemplo como exemplo.py e execute PYTHONPATH=./sdk/python/src python3 exemplo.py. Não é necessário baixar um pacote do PyPI.

import sys
from sysled_public import SysledClient

try:
    sysled = SysledClient()  # SYSLED_URL e SYSLED_TOKEN, somente no servidor
    page = sysled.products_list({"limit": 24, "offset": 0})
    if not isinstance(page.get("items"), list):
        raise ValueError("Resultado inesperado")
    print(len(page["items"]), page.get("next_cursor"))
except Exception:
    # Não imprima a exceção original, a URL nem o corpo da resposta.
    print("Consulta SYSLED falhou; confira ambiente, credenciais e contrato.", file=sys.stderr)
    sys.exit(1)

O SDK Python candidato evita guardar o corpo bruto nos erros, limita o tamanho da resposta e bloqueia redirects. A validação local de exemplos e SDKs usa transporte simulado; não comprova disponibilidade do backend de uma instância.