MostlyRender

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.

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

# Beispiel

html
<img src="https://api.mostlyrender.com/v1/templates/tpl_abc/render.png?title=Hello&theme=dusk&sig=8f3c…" />
  • {ext} ist png, jpg/jpeg, webp oder pdf.
  • Jeder Query-Parameter außer den reservierten sig, scale und q wird 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:

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}`;
}

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