Zum Inhalt springen

REST-API

Alle Endpoints liegen unter /api/_action/p2lab-cache/... und erfordern ein gültiges Admin-API-Access-Token (dasselbe, das Sie für andere Admin-Endpoints von Shopware nutzen). Übergeben Sie es als Authorization: Bearer <token>.

Gibt die Dashboard-Zusammenfassung zurück — Gesamt-Dateien / -Größe, Per-Typ-Zähler, aggregierte Statistiken und detaillierte Per-Typ-Statistiken.

Antwort (Auszug):

{
"totalFiles": 1842,
"totalSize": 91234567,
"totalSizeFormatted": "87.00 MB",
"byType": {
"products": 1200,
"buybox": 0,
"categories": 80,
"listings": 540,
"cms": 22
},
"aggregated": {
"totalPages": 1842,
"totalOriginalSize": 182000000,
"totalCachedSize": 91234567,
"totalSpaceSaved": 90765433,
"avgGenerationTime": 0.4217,
"avgCacheHitTime": 0.0019,
"compressionEnabled": true
},
"byTypeDetailed": {
"product": { "count": 1200, "spaceSaved": 65000000, "avgGenerationTime": 0.41, "avgCacheHitTime": 0.0018 }
}
}

Purged jeden gecachten Eintrag. Kein Body nötig.

Antwort:

{ "success": true, "filesDeleted": 1842 }

Purged jeden Eintrag eines einzelnen Typs.

Body:

{ "type": "products" }

type muss einer von products, categories, cms, listings, buybox sein.

Antwort:

{ "success": true, "filesDeleted": 1200, "type": "products" }

Erkennt cachefähige URLs und dispatcht den Warmup an die Message Queue.

Body:

{ "salesChannelId": null, "batchSize": 50 }

salesChannelId kann null (alle Channels) oder eine spezifische Channel-ID sein. batchSize ist standardmäßig 50.

Antwort:

{ "success": true, "progressId": "01HXY...ABC", "totalUrls": 1842 }

GET /api/_action/p2lab-cache/warmup/progress?progressId=<id>

Abschnitt betitelt „GET /api/_action/p2lab-cache/warmup/progress?progressId=<id>“

Status eines Warmups pollen. Wenn progressId weggelassen wird, wird der jüngste Warmup zurückgegeben.

Antwort:

{
"success": true,
"progress": {
"id": "01HXY...ABC",
"total_urls": 1842,
"processed_urls": 920,
"failed_urls": 3,
"remaining_urls": 922,
"checked_urls": 920,
"percentage": 49.95,
"status": "running"
},
"cacheStats": { /* gleiche Form wie /stats */ }
}

Laufenden Warmup pausieren. Body: { "progressId": "..." }.

Pausierten Warmup fortsetzen. Body: { "progressId": "..." }.

Laufenden oder pausierten Warmup abbrechen. Body: { "progressId": "..." }.

Gibt den 24-Stunden-Überblick, die stündliche Aufschlüsselung und die Top-20-Tags zurück.

Antwort:

{
"overview": { "totalPurges": 312, "distinctUrls": 220, "distinctTags": 95, "avgResponseTime": 0.012 },
"hourly": [ { "hour": "2026-05-20T13:00:00Z", "purges": 14 }, ... ],
"topTags": [ { "tag": "product-...", "count": 22 }, ... ]
}

GET /api/_action/p2lab-cache/reverse-proxy-stats/recent?limit=10&offset=0

Abschnitt betitelt „GET /api/_action/p2lab-cache/reverse-proxy-stats/recent?limit=10&offset=0“

Gibt die jüngsten Purges paginiert zurück.

POST /api/_action/p2lab-cache/reverse-proxy-stats/clear

Abschnitt betitelt „POST /api/_action/p2lab-cache/reverse-proxy-stats/clear“

Truncated das Reverse-Proxy-Log.

GET /api/_action/p2lab-cache/reverse-proxy-log/urls?limit=100

Abschnitt betitelt „GET /api/_action/p2lab-cache/reverse-proxy-log/urls?limit=100“

Gibt eindeutige URLs zurück, die gepurged wurden.

GET /api/_action/p2lab-cache/reverse-proxy-log/url-flow?url=<url>&limit=100

Abschnitt betitelt „GET /api/_action/p2lab-cache/reverse-proxy-log/url-flow?url=<url>&limit=100“

Gibt die chronologische Purge-Timeline für eine einzelne URL zurück.

GET /api/_action/p2lab-cache/reverse-proxy-log/entity-timeline?entityType=<type>&entityId=<id>&limit=50

Abschnitt betitelt „GET /api/_action/p2lab-cache/reverse-proxy-log/entity-timeline?entityType=<type>&entityId=<id>&limit=50“

Gibt jeden xkey-Purge zurück, den eine bestimmte Entität ausgelöst hat. entityType muss einer der erlaubten Typen sein (product, category, cms_page, …). Für Produkte können Sie entityNumber=<sku> statt entityId übergeben.

POST /api/_action/p2lab-cache/invalidation-log/clear

Abschnitt betitelt „POST /api/_action/p2lab-cache/invalidation-log/clear“

Truncated das Invalidierungslog.

  • Alle Endpoints geben 401 zurück, wenn das Bearer-Token fehlt / ungültig ist.
  • Endpoints, die einen Body erwarten, geben bei Validierungsfehlern 400 mit { "success": false, "message": "..." } zurück.
  • Endpoints, die im jüngsten Warmup nicht gefunden werden, geben null-Progress mit 200 zurück, nicht 404.