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.
GET https://api.mostlyrender.com/v1/templates/{id}/render.{ext}?<modifications>&sig=<signature>
# Esempio
<img src="https://api.mostlyrender.com/v1/templates/tpl_abc/render.png?title=Hello&theme=dusk&sig=8f3c…" />
{ext}èpng,jpg/jpeg,webp, opdf.- Ogni parametro di query diverso dai riservati
sig,scaleeqviene 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:
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 |