Signierte Render-URLs
Rendern Sie on-the-fly von einer einfachen URL – perfekt für <img>-Tags, Open Graph-Bilder und E-Mails. Kein API-Schlüssel gelangt zum Browser: Der Besitzer signiert die URL vor, sodass sie immer bereitgestellt wird (sie wird niemals durch Kontingente blockiert wie die API), und wiederholte Zugriffe werden im CDN zwischengespeichert und dedupliziert, um die Abrechnung zu reduzieren.
GET https://api.mostlyrender.com/v1/templates/{id}/render.{ext}?<modifications>&sig=<signature>
# Beispiel
<img src="https://api.mostlyrender.com/v1/templates/tpl_abc/render.png?title=Hello&theme=dusk&sig=8f3c…" />
{ext}istpng,jpg/jpeg,webpoderpdf.- Jeder Query-Parameter außer den reservierten
sig,scaleundqwird an die Vorlage als Änderung übergeben. scale(1–3) legt den Geräteskalierungsfaktor fest;q(0–100) legt die JPEG/WebP-Qualität fest.
# Signierung
Der einfachste Weg: Öffnen Sie eine Vorlage in der App und kopieren Sie ihre signierte Einbettungs-URL – sie ist vorsigniert und kann direkt in ein <img>-Tag eingefügt werden.
Um URLs selbst zu erstellen, ist sig ein HMAC-SHA256 über die Template-ID, die Erweiterung und die kanonisierte Query-Zeichenkette (Parameter sortiert, sig ausgeschlossen), unter Verwendung Ihres Signierungsgeheimnisses:
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}`;
}
Eine Anfrage mit fehlender oder falscher sig gibt 403 zurück. Die Signatur deckt nur die Parameter ab, die Sie signiert haben, daher wird eine manipulierte URL (ein zusätzlicher oder geänderter Parameter) abgelehnt.
# Wann Sie welche verwenden sollten
| Verwendung | Greifen zu |
|---|---|
| Serverseitige Generierung, URL speichern | POST /v1/renders |
| Viele auf einmal | Batch |
In <img>/OG/E-Mail einbetten, kein Schlüssel auf dem Client |
Signierte Render-URLs |