Migration
Von apitemplate.io zu Formfeed wechseln
Ihre Vorlagen sind Jinja2, und Ihre Integration schickt JSON. Formfeed spricht beides, eine Migration ist also ein Import und eine geänderte Basis-URL, keine Neuentwicklung. Der Importer sagt vorab, was einen Blick braucht.
Kostenloser Plan mit 100 Einheiten im Monat, keine Kreditkarte
1. Vorlagen importieren
Öffnen Sie Vorlagen, wählen Sie Importieren und apitemplate.io. Geben Sie Ihren apitemplate.io-API-Schlüssel und die Region ein, die Ihre Integration aufruft, wählen Sie die Vorlagen aus der Liste, nach Gruppe oder alle auf einmal, und der Importer liest HTML, CSS, Einstellungen und Beispiel-JSON. Bildvorlagen sind Ebenen-Designs ohne HTML und lassen sich nicht importieren. Eine einzelne Vorlage können Sie auch einfügen oder als exportierte Dateien ablegen. Der Importer kompiliert jede Vorlage, prüft sie gegen ihre Beispieldaten und erstellt einen Bericht; Entwürfe anlegen macht daraus je eine Jinja2-Vorlage, als Entwurf gespeichert. Im Free-Plan, der fünf Vorlagen fasst, hält ein Import an der Grenze an. Die CLI macht dasselbe mit formfeed import apitemplate --all. Jede Abbildung steht in der Migrationsanleitung.
- Fehler. Unbekannte Filter und von der Engine abgelehnte Syntax, mit Zeilenangabe.
- Prüfpunkte. Python-spezifische Konstrukte, Einstellungen ohne Gegenstück und Schlüssel, die die Vorlage liest, die Beispieldaten aber nicht haben.
- Was abgebildet wurde. Papierformat, Ausrichtung, Ränder, Kopf- und Fußzeilenvorlagen, Hintergrunddruck, Skalierung, Seitenbereiche und die Bildoptionen.
2. Ausgaben vergleichen
Der optionale Vergleichsschritt rendert das Original mit Ihrem apitemplate.io-Schlüssel und denselben Daten, damit Sie deren PDF vor der Entscheidung neben die Formfeed-Vorschau legen können. Der Schlüssel wird für diesen einen Aufruf verwendet und nie gespeichert.
3. Die API umstellen
Veröffentlichen Sie zuerst jeden importierten Entwurf: Die API rendert die veröffentlichte Version. Dann wählen Sie einen von zwei Wegen. Die Kompatibilitätsendpunkte für create-pdf, create-image, create-pdf-from-html und create-pdf-from-url behalten Anfrage- und Antwortformat von apitemplate.io, es ändern sich also nur Basis-URL und Schlüssel: Ein Formfeed-Schlüssel kommt in denselben Header X-API-KEY, und in der App importierte Vorlagen reagieren weiter auf ihre template_id von apitemplate.io. Der native Endpunkt gibt Ihnen die volle API: Batches, Webhooks, Idempotenz und Reproduzierbarkeit.
curl "https://api-eu.formfeed.dev/v1/compat/apitemplate/create-pdf?template_id=invoice-de" \
-H "X-API-KEY: ff_live_..." \
-H "Content-Type: application/json" \
-d '{ "invoice": { "number": "2026-0042", "lines": [] } }'Was gleich bleibt
- Die Jinja2-Syntax.
qrcodeundbarcodesind Helfer gleichen Namens (prüfen Sie ihre Optionen), undcurrency_formatrendert weiter als Alias vonmoney. Einen Filtertablegibt es nicht: Schreiben Sie eine solche Tabelle als HTML mit einer{% for %}-Schleife (Filter). - Die Einstellungen, die Sie für Papier, Ränder, Kopf- und Fußzeilen schon nutzen.
- JSON hinein, signierte Download-URL heraus, gültig bis zu sieben Tage und nie länger, als Ihr Plan die Datei aufbewahrt.
Was anders ist
- Ein Editor mit Diagnosen. Autovervollständigung aus Ihren Beispieldaten und eine paginierte Vorschau statt eines Textfelds.
- Vorlagen als Dateien. Vorlagen mit der Kommandozeile ziehen und pushen, Änderungen im Pull Request prüfen, in der CI testen.
- Verarbeitung in der EU. Datenbank und Rendering in Frankfurt, Ausgaben in der EU gespeichert, mit Auftragsverarbeitungsvertrag.
- Preise in Euro. Pläne und weitere Einheiten in Euro, ein kostenloser Plan mit 100 Einheiten im Monat und Test-Schlüssel, die nicht gezählt werden.
FAQ
- Bleiben die Vorlagen-IDs gleich?
- An den Kompatibilitätsendpunkten ja, für Vorlagen, die Sie in der App mit Ihrem API-Schlüssel importiert haben: Jede merkt sich ihre apitemplate.io-ID,
template_idbleibt also, wie es ist. Mit der Kommandozeile importierte oder als Dateien eingefügte Vorlagen reagieren stattdessen auf ihren Slug oder ihre Formfeed-ID. Der Slug ist der Name der Vorlage in Kleinbuchstaben mit Bindestrichen (ausStatement of costwirdstatement-of-cost), und die native API nennt Vorlagen damit. - Was decken die Kompatibilitätsendpunkte nicht ab?
- Objekte auflisten und löschen, Vorlagen auflisten, die Konto-Endpunkte sowie die Helfer für Zusammenführen und Wasserzeichen; jeder andere Pfad antwortet mit 404. Ihre nativen Gegenstücke:
GET /v1/renderslistet Renderings,DELETE /v1/renders/{id}/outputslöscht eine Datei,GET /v1/templateslistet Vorlagen,GET /v1/accountundGET /v1/usagezeigen das Konto, und die PDF-Tools führen zusammen und setzen Wasserzeichen (ab Starter). - Wie lange dauert das?
- Bei einer Handvoll Vorlagen ein Nachmittag: importieren, vergleichen, veröffentlichen, Basis-URL ändern. Größere Bestände sind dieselbe Arbeit wiederholt, und der Importer der Kommandozeile liest sie mit Ihrem API-Schlüssel und Ihrer Region:
formfeed import apitemplate --key … --source-region de --all, oder--groupfür eine Gruppe.