What is JasperWho?
JasperWho – Technische Übersicht
JasperWho ist eine Laravel-Anwendung zur Verwaltung und Generierung von JasperReports-Templates. Sie stellt eine API bereit, über die Templates hochgeladen, konfiguriert und als PDF gerendert werden können.
Architektur
Die Anwendung folgt dem Standard-Laravel-MVC-Muster und ist in folgende Schichten aufgeteilt:
Jasper-Integration
JasperWho kommuniziert mit einem JasperReports-Server via HTTP. Die Verbindungsdaten werden pro Umgebung in .env konfiguriert.
JASPER_HOST=https://jasper.example.com
JASPER_USER=admin
JASPER_PASSWORD=secret
JASPER_TIMEOUT=30
Template-Lifecycle
Ein Template durchläuft folgende Zustände:
.jrxmlAPI-Endpunkte
GET/api/templatesPOST/api/templatesGET/api/templates/{id}DELETE/api/templates/{id}POST/api/templates/{id}/renderRender-Request (Beispiel)
{
"parameters": {
"report_date": "2026-05-22",
"customer_id": 4711,
"include_charts": true
},
"format": "PDF"
}
Konfiguration
InfoAlle Umgebungsvariablen können über.envoder als Container-Secrets gesetzt werden.
JASPER_HOSTJASPER_USERJASPER_PASSWORDJASPER_TIMEOUT30TEMPLATE_DISKlocalFehlerbehandlung
Schlägt ein Render-Job fehl, gibt die API eine strukturierte Fehlerantwort zurück:
{
"error": "render_failed",
"message": "JasperReports server returned 500",
"template_id": 42,
"trace_id": "a3f9c1"
}
Häufige Ursachen:
.jrxmlactiveLokale Entwicklung
# Abhängigkeiten installieren
composer install
# Umgebung vorbereiten
cp .env.example .env
php artisan key:generate
# Datenbank migrieren
php artisan migrate --seed
# Server starten
php artisan serve
WarningFür lokale Entwicklung wird kein echter Jasper-Server benötigt — derJasperFakeDriversimuliert Rendering und gibt Dummy-PDFs zurück.