Files
SvenandClaude Fable 5 68acd867e5 Dockerfile, API-Versionierung (/api/v1) und Tests für die REST-Schicht
- Dockerfile (Temurin 21, Zeitzone Berlin, MS Core Fonts für PDF-Renderer)
- API-Pfade auf /api/v1/invoices versioniert (Controller, Javadoc, README)
- Web-Schicht-Tests für InvoiceSigningController (MockMvc, gemockte Services)
- End-to-End-Integrationstest: sign -> ZIP -> erneute Validierung
- .env in .gitignore aufgenommen

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 11:54:18 +02:00

1.2 KiB

PDF Service

REST-API zur Erzeugung und Prüfung rechtskonformer ZUGFeRD-E-Rechnungen (PDF/A-3 mit eingebettetem EN16931-XML, Mustangproject).

Aus dem PDF Tool herausgelöst: Das PDF Tool enthält die Weboberfläche (Rechnungserzeugung aus Templates), dieser Service stellt ausschließlich die API bereit — Eingabe ist immer ein fertiges Rechnungs-PDF.

Starten

./mvnw spring-boot:run

Der Service läuft standardmäßig auf Port 8084 (überschreibbar per SERVER_PORT).

Endpoints

PDF in ZUGFeRD-Rechnung umwandeln

curl -X POST http://localhost:8084/api/v1/invoices/sign \
  -F "file=@rechnung.pdf" \
  -F "metadata=@metadata.json;type=application/json" \
  -o rechnung-zugferd.zip

Antwort: ZIP mit ZUGFeRD-PDF und Mustang-Prüfbericht (validation-report.xml). HTTP 200 bei gültiger, HTTP 422 bei ungültiger Rechnung (ZIP in beiden Fällen); der Header X-Zugferd-Valid enthält das Prüfergebnis.

ZUGFeRD-Rechnung validieren

curl -X POST http://localhost:8084/api/v1/invoices/validate \
  -F "file=@rechnung-zugferd.pdf"

Antwort: Mustang-Prüfbericht als XML; HTTP 200 bei gültiger, HTTP 422 bei ungültiger Rechnung.