Services
PDF – Template anlegen
Lege ein PDF-Template in der Datenbank an, inklusive HTML, Variablen und Basis‑Optionen.
Route
- Methode: POST
- URL: /api/pdf/create-template
- Auth:
x-api-key
(Header); nur serverseitig verwenden
Request
- name: string (erforderlich)
- html: string (optional; HTML-Fragment oder Dokument)
- variables: object|string (optional; wird zu JSON serialisiert)
- format: string (optional; z.B. "A4")
- landscape: boolean (optional)
- marginTop|Right|Bottom|Left: string (optional; z.B. "12mm")
/api/pdf/create-template (POST)
{
"name": "Monthly Report",
"html": "<h1>{{title}}</h1>",
"variables": {
"title": "Report"
},
"format": "A4",
"landscape": false,
"marginTop": "12mm",
"marginRight": "12mm",
"marginBottom": "12mm",
"marginLeft": "12mm"
}
curl -X POST "https://dev.nuvisphere.de/api/pdf/create-template" \
-H "Content-Type: application/json" \
-H "x-api-key: API_KEY"
-d '{
"name": "Monthly Report",
"html": "<h1>{{title}}</h1>",
"variables": {
"title": "Report"
},
"format": "A4",
"landscape": false,
"marginTop": "12mm",
"marginRight": "12mm",
"marginBottom": "12mm",
"marginLeft": "12mm"
}'
// server-side (Node/Next.js)
const res = await fetch("https://dev.nuvisphere.de/api/pdf/create-template", {
method: "POST",
headers: {
"content-type": "application/json",
"x-api-key": process.env.MAILER_API_KEY!,
},
body: JSON.stringify({
"name": "Monthly Report",
"html": "<h1>{{title}}</h1>",
"variables": {
"title": "Report"
},
"format": "A4",
"landscape": false,
"marginTop": "12mm",
"marginRight": "12mm",
"marginBottom": "12mm",
"marginLeft": "12mm"
}),
});
if (!res.ok) throw new Error(`Request failed ${res.status}`);
const json = await res.json();
- API Key niemals im Browser verwenden – nur serverseitig (z. B.
process.env.MAILER_API_KEY
). - Lässt du optionale Felder weg, nutzt die API ggf. Template-/Defaultwerte.
Response
{
"ok": true,
"id": "DOCUMENT_ID"
}
Weiterverwendung
Die id
kann in /api/pdf/generate
als templateId
verwendet werden, um das gespeicherte Template zu rendern.