MostlyRender

URL di render firmati

Rendering al volo da un URL semplice — perfetto per tag <img>, immagini Open Graph ed email. Nessuna chiave API viaggia verso il browser: il proprietario pre-firma l’URL, quindi serve sempre (non si blocca mai sulla quota come fa l’API), e i hit ripetuti sono memorizzati nella cache della CDN e deduplicati dalla misurazione.

text
GET https://api.mostlyrender.com/v1/templates/{id}/render.{ext}?<modifications>&sig=<signature>

# Esempio

html
<img src="https://api.mostlyrender.com/v1/templates/tpl_abc/render.png?title=Hello&theme=dusk&sig=8f3c…" />
  • {ext} è png, jpg/jpeg, webp, o pdf.
  • Ogni parametro di query diverso dai riservati sig, scale e q viene passato al template come una modifica.
  • scale (1–3) imposta il fattore di scala del dispositivo; q (0–100) imposta la qualità JPEG/WebP.

# Firma

Il percorso più semplice: apri un template nell’app e copia il suo URL di incorporamento firmato — è pre-firmato e pronto per essere incollato in un tag <img>.

Per generare URL tu stesso, sig è un HMAC-SHA256 sul template id, l’estensione e la query string canonicalizzata (parametri ordinati, sig escluso), usando la tua chiave di firma:

js
import crypto from 'node:crypto';

function signRenderUrl(base, secret, id, ext, params) {
  const query = Object.keys(params).sort()
    .map((k) => `${encodeURIComponent(k)}=${encodeURIComponent(params[k])}`).join('&');
  const sig = crypto.createHmac('sha256', secret).update(`${id}:${ext}:${query}`).digest('hex');
  return `${base}/v1/templates/${id}/render.${ext}?${query}&sig=${sig}`;
}

Una richiesta con un sig mancante o errato restituisce 403. La firma copre solo i parametri che hai firmato, quindi un URL manomesso (un parametro extra o modificato) viene rifiutato.

# Quando usare quale

Uso Scegli
Generazione lato server, archivia l’URL POST /v1/renders
Molti contemporaneamente Batch
Incorpora in <img>/OG/email, nessuna chiave nel client URL di render firmati