AddOn


api

Beschreibung

API

Umsetzung

Versionen

1.3

Für REDAXO
^5.17.0
Veröffentlicht am
26.08.2026
Require / PHP
>=8.2

Version 1.3

Neue Endpoints

  • Chunked Upload: media/upload mit init, chunk, status, finalize und abort — große Dateien lassen sich über mehrere Requests übertragen, ohne an post_max_size zu scheitern. Die zusammengesetzte Datei geht an rex_media_service::addMedia(), damit Endungs-Blockliste, MIME-Allowlist und die Extension Points MEDIA_ADD_FILE/MEDIA_ADDED unverändert greifen. Alle fünf Routen teilen einen Scope — einzeln vergeben wären sie unbrauchbar (#39)
  • Selbstauskunft /api/me: listet die Endpunkte, die das aufrufende Token bzw. der Backend-User nutzen darf, auf Wunsch als gefilterte OpenAPI-Spec (?format=openapi). Ohne eigenen Scope, damit die Auskunft nicht genau bei den Tokens fehlt, bei denen ein Scope vergessen wurde

Token mit Ablaufdatum

  • Das Feld Läuft ab bietet Zeitspannen von 3 Stunden bis 1 Jahr an und nennt zu jeder den Zeitpunkt, auf den sie hinausläuft; Benutzerdefiniert schaltet ein Datumsfeld frei, Nie lässt das Token unbegrenzt gültig (#48)
  • Der Zeitpunkt wird aus der Datenbankzeit berechnet, weil der Ablauf gegen now() geprüft wird — sonst wäre jede Zeitspanne um die Differenz der Zeitzonen verschoben
  • Ein abgelaufenes Token wird wie ein unbekanntes behandelt: 401. Tokens aus früheren Versionen bleiben unbegrenzt gültig
  • Die Token-Liste zeigt das Datum formatiert und kennzeichnet abgelaufene Tokens

Medien suchen und filtern

  • Freitextsuche über Dateiname und Titel (filter[term]), inklusive type:jpg,png im Suchbegriff und Gruppierung mit Anführungszeichen
  • Dateiendungen (filter[types]) und rekursive Kategoriesuche über den Kategoriepfad (filter[category_id_path]) — dieselbe Semantik wie rex_media_service::getList() (#64)

OpenAPI

  • Der geforderte Scope steht als x-required-scope und in der Beschreibung jeder Operation, ist damit in Swagger UI sichtbar
  • Die Endpunkte sind nach Ressource gruppiert und alphabetisch sortiert, statt der Registrierungsreihenfolge der RoutePackages zu folgen

Slice-Revisionen

  • Die Arbeitsversion des Plugins structure/version ist beim Anlegen über das Body-Feld revision erreichbar; Priorität und EP-Parameter zählen pro Revision (#42)
  • Im Backend-Scope wird version[live_version] geprüft, bevor in die Live-Version geschrieben wird; bei Bearer-Tokens ersetzen weiterhin die Scopes die User-Permissions
  • filter[revision] bei den Artikel-Endpunkten entfernt: rex_article.revision wird vom Core nie befüllt und nirgends ausgewertet, der Filter hat nichts bewirkt außer Erwartungen zu wecken

Fixes

  • Überschrittene PHP-Uploadgrenzen melden 413 mit den geltenden Limits statt eines generischen 400
  • Metainfo-Werte: Arrays und Objekte auf einfachen Feldern werden mit 400 zurückgewiesen statt still verworfen (#66)
  • Metainfo-Felder: Schlägt das ALTER TABLE fehl, wird das gemeldet und die bereits geschriebene Feldzeile zurückgenommen; verwaiste Zeilen aus früheren Fehlschlägen lassen sich löschen statt dauerhaft 404 zu liefern (#67)
  • Slice-Endpunkte kennen value20 (#52)
  • Sprachen: Der Versuch, die Startsprache zu löschen, antwortet mit 409 statt 500
  • Status-Übersetzung in der Token-Liste korrigiert

Hardening / Aufräumen

  • Unique-Index auf api_token.token: Ein doppelter Wert hätte den zweiten Eintrag samt Scopes unwirksam gemacht. Bestehende Duplikate brechen das Update nicht ab — der Index bleibt aus und eine Warnung landet im System-Log (#26)
  • Toter Kategorie-Code aus dem Media-RoutePackage entfernt: der auskommentierte Entwurf hätte über rex_category_service Artikelkategorien statt Medienkategorien gelöscht
  • Update auf symfony/routing 7.4.17

Tests

  • Die Suite ist auf 215 Tests gewachsen, unter anderem mit Roundtrips für den Chunked Upload, die Medienfilter und die Metainfo-Fehlerpfade

Doku

  • README um Chunked Upload, Uploadgrenzen, Medienfilter und Ablaufdatum ergänzt
  • CHANGELOG.md neu angelegt

Dieser Text wurde durch eine KI erstellt.

1.2

Für REDAXO
^5.17.0
Veröffentlicht am
08.05.2026
Require / PHP
>=8.2

Version 1.2

Neue Endpoints

  • Metainfo: Felddefinitionen und Werte für Artikel/Kategorie/Medium/Sprache (Bearer + Backend-Session, mit Permission-Checks)
  • User ↔ Rollen: Verknüpfung jetzt als API-Endpoints
  • Slice-CRUD: Add/Update/Delete mit korrekt gefeuerten Extension Points
  • Media-Upload: Multipart-Upload ergänzt
  • Clang-Metainfo: Backend-Session-Variante (admin-only)
  • Backend-APIs: Spiegel-Routen (backend/...) für alle Bearer-Endpoints, Auth via REDAXO-Backend-Session
  • Dashboard: Backend-Page mit Strukturbaum, Artikel-/Kategorie-Anlage, Sibling-basierter Positionsauswahl

Verhalten an REDAXO-Core angeglichen

  • Extension Points feuern in Reihenfolge und mit identischen Param-Schlüsseln wie die Backend-Pages (Audit-Angleichung)
  • Article-List, Trailing-Slash und generisches Exception-Handling konsolidiert
  • Listen einheitlich über ListHelper (Pagination + Sort + Meta-Block) — Format vereinheitlicht über alle List-Endpoints
  • LIMIT/Offset MySQL-strict-mode-safe

Fixes

  • Article- und Category-Status-Endpoints korrigiert (#45)
  • Template-Attribute via API matchen jetzt den Install-Default (#34)
  • Template-GET nutzte versehentlich Tabellenname rex_templatetemplate
  • User/Rollen-Errors mit korrektem HTTP-Status (locale-unabhängig)
  • Media-Liste: filter[category_id]=0 wird korrekt verarbeitet
  • mediaIsInUse() in try/catch — verhindert 500er durch fehlerhafte EP-Listener
  • Output-Buffering-Probleme im Dashboard behoben
  • curl_close-Deprecation aus Tests entfernt

Hardening / Aufräumen

  • per_page mit Maximal-Cap
  • Content-Disposition korrekt escaped
  • Refactor: new Response(json_encode(...))new JsonResponse(...) (#18)

Tests

  • Backend-Admin-CRUD-Lücken nachgezogen (Slices, Roles-Dup, Media)
  • Metainfo-Roundtrips
  • Auth-Failure-Pfade, Pagination/Sort-Edges, Restricted-Token
  • Credentials/Settings über tests/.env statt fest in config.php

Doku

  • README mit aktuellen Endpunkt-Tabellen und Backend-Test-Spalten
  • CLAUDE.md: Exakt-Spiegel-Prinzip zwischen API und REDAXO-Core dokumentiert

1.1

Für REDAXO
^5.17.0
Veröffentlicht am
09.09.2025
Require / PHP
>=8.2

Version 1.1

  • BearerAuth verbessert
  • Umbau der Authentifizierung
  • Nonce wurde falsch eingebunden. Im Livemode war keine Doku verfügbar

1.0

Für REDAXO
^5.17.0
Veröffentlicht am
20.03.2025
Require / PHP
>=8.2

Es gibt verschiedene CoreAPIs die man über einen Token nutzen kann. Die Liste der APIs ist der README.md nachzulesen und über OpenAPI dokumentiert und innerhalb von REDAXO testbar. Das AddOn dient als Basis für APIs welche andere AddOns nutzen können