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

42 lines
1.2 KiB
Markdown

# PDF Service
REST-API zur Erzeugung und Prüfung rechtskonformer ZUGFeRD-E-Rechnungen
(PDF/A-3 mit eingebettetem EN16931-XML, [Mustangproject](https://www.mustangproject.org/)).
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
```bash
./mvnw spring-boot:run
```
Der Service läuft standardmäßig auf Port `8084` (überschreibbar per `SERVER_PORT`).
## Endpoints
### PDF in ZUGFeRD-Rechnung umwandeln
```bash
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
```bash
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.