Reports API
Schneller Zugriff auf die Daten, die wirklich zählen
1 · Schnellüberblick

Was es kann

  • Reports auf Abruf direkt aus der eigenen Anwendung
  • Eine einfache Sicherheitsregel – ein einzelner Bearer-Token, ausgestellt von Ihrer App
  • Durchgehend standardisiert – OpenAPI 3.1, reines JSON
  • Integrierte Paginierung für einfache Nutzung langer Listen
  • Klare Fehlercodes statt kryptischer Meldungen

Warum es Ihnen hilft

  • Keine Wartezeiten: Alle verbundenen Systeme haben 24/7-Zugriff
  • Ihr Team behält die volle Kontrolle – kein separates Login oder zusätzliche Passwörter
  • Funktioniert mit allen modernen Sprachen, Frameworks oder BI-Tools
  • Reaktionsschnelle UIs – auch bei tausenden Reports
  • Schnelleres Debugging, weniger Support-Tickets
2 · Deep Dive
Base URL
				
					https://frontend.local/api

				
			
Auth
				
					Authorization: Bearer <FRONTEND_PROVIDED_TOKEN>

				
			
Die API akzeptiert jedes JWT, das Ihr Frontend ausstellt. Es gibt keine serverseitige Ablauf- oder Refresh-Logik – Token-Lifetime und Rotation liegen komplett bei Ihnen.
2.1 · Endpunkte
Verb & PathPurposeSuccessCommon errors
GET /reports/{id} Fetch the full JSON payload for one report.200{ data: {…} }401 Unauthenticated, 404 Not found
GET /reports?page=1&per_page=25List reports (paginated).200{ data: [ … ], meta: { page, per_page, total } }401 Unauthenticated

Alle anderen Pfade erben den Sicherheitsmechanismus BearerAuth, wie in der OpenAPI 3.1-Spezifikation definiert
(siehe components.securitySchemes.BearerAuth).

2.2 · response shape
				
					{
  "data": {
    "id": "abc123",
    "title": "NorthPoly P5508",
    "created_at": "2025-07-09T08:15:30Z",
    "data": { /* arbitrary nested KPI structure */ }
  }
}

				
			
Bei Aufrufen von Listenendpunkten erhalten Sie zusätzlich:
				
					"meta": {
  "page": 2,
  "per_page": 25,
  "total": 100
}

				
			
2.3 · Schema referenz

ReportTransformer (Ausschnitt)

FieldTypeNotes
idstringPrimary key
titlestringHuman-readable title
created_atstring (data-time)ISO-8601
dataobjectYour custom metrics
2.4 · Fehlerkatalog
StatusBody
401{"message":"Unauthenticated"}
404{"error":{"code":"not_found","message":"Report not found"}}
Validation{ "message": "Validation error", "errors": { field: ["msg"] } }
2.5 · Beispielaufrufe

Shell (cURL)

				
					curl -X GET "https://frontend.local/api/reports?page=2&per_page=10" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Accept: application/json"

				
			

JavaScript (Fetch)

				
					const res = await fetch("https://frontend.local/api/reports/abc123", {
  headers: {
    Authorization: `Bearer ${token}`,
    Accept: "application/json",
  },
});
if (!res.ok) throw new Error(res.statusText);
const { data } = await res.json();

				
			
3 · Warum Entwickler das gut finden
  • Drop-in ready: Funktioniert direkt mit Axios, Fetch, Postman oder jedem OpenAPI-kompatiblen Client
  • Vorhersehbarer Footprint: Nur zwei Endpunkte – alles andere läuft über Pagination oder Path-Parameter
  • Überall typisiert: Die OpenAPI-3.1-Spezifikation erlaubt automatisches Generieren von TS-Interfaces oder PHP-DTOs in Sekunden
  • Zero Lock-in: Reines HTTP+JSON – Migration oder Erweiterung ohne Refactoring der Downstream-Consumer