Przejdź do głównej zawartości

REST API

Wszystkie endpointy żyją pod /api/_action/p2lab-cache/... i wymagają ważnego tokenu admin API (tego samego, którego używasz do innych endpointów admin Shopware). Przekaż go jako Authorization: Bearer <token>.

Zwraca podsumowanie dashboardu — total files / size, liczby per typ, agregowane statystyki i szczegółowe statystyki per typ.

Odpowiedź (fragment):

{
"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 }
}
}

Purguje każdy cache’owany wpis. Bez body.

Odpowiedź:

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

Purguje każdy wpis pojedynczego typu.

Body:

{ "type": "products" }

type musi być jednym z products, categories, cms, listings, buybox.

Odpowiedź:

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

Odkrywa cache’owalne URL-e i dispatchuje warmup do kolejki message.

Body:

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

salesChannelId może być null (wszystkie kanały) lub konkretne ID kanału. batchSize domyślnie 50.

Odpowiedź:

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

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

Dział zatytułowany „GET /api/_action/p2lab-cache/warmup/progress?progressId=<id>”

Pollnij status warmupu. Jeśli progressId pominięty, zwracany jest ostatni warmup.

Odpowiedź:

{
"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": { /* ten sam kształt co /stats */ }
}

Pauzuj działający warmup. Body: { "progressId": "..." }.

Wznów spauzowany warmup. Body: { "progressId": "..." }.

Anuluj działający lub spauzowany warmup. Body: { "progressId": "..." }.

Zwraca 24-godzinny overview, rozbicie godzinowe i top 20 tagów.

Odpowiedź:

{
"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

Dział zatytułowany „GET /api/_action/p2lab-cache/reverse-proxy-stats/recent?limit=10&offset=0”

Zwraca ostatnie purgi, paginowane.

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

Dział zatytułowany „POST /api/_action/p2lab-cache/reverse-proxy-stats/clear”

Truncuje log reverse-proxy.

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

Dział zatytułowany „GET /api/_action/p2lab-cache/reverse-proxy-log/urls?limit=100”

Zwraca unikalne URL-e, które były purgowane.

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

Dział zatytułowany „GET /api/_action/p2lab-cache/reverse-proxy-log/url-flow?url=<url>&limit=100”

Zwraca chronologiczny timeline purgów dla pojedynczego URL.

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

Dział zatytułowany „GET /api/_action/p2lab-cache/reverse-proxy-log/entity-timeline?entityType=<type>&entityId=<id>&limit=50”

Zwraca każdy xkey purge, który konkretna encja wywołała. entityType musi być jednym z dozwolonych typów (product, category, cms_page, …). Dla produktów możesz przekazać entityNumber=<sku> zamiast entityId.

Truncuje log inwalidacji.

  • Wszystkie endpointy zwracają 401, jeśli bearer token brakuje / jest nieprawidłowy.
  • Endpointy oczekujące body zwracają 400 przy błędach walidacji z { "success": false, "message": "..." }.
  • Endpointy nieznalezione w ostatnim warmupie zwracają null progress z 200, nie 404.