/

REST-API-Referenz

Jedes Xcrud-Widget spricht mit einem einzigen Endpunkt, core/ajax_crud.php - hier ist dessen Request-/Response-Format.

Der Parameter route

Jede Anfrage führt einen Query-Parameter route mit, der festlegt, welche Seitenkonfiguration verwendet wird - er entspricht genau dem Wert, den der eigene ->route()-Aufruf dieser Seite gesetzt hat. Die API löst Hooks, Spalten und Validierungsregeln der Seite bei jeder einzelnen Anfrage serverseitig aus dieser Route neu auf; sie vertraut nie einer clientseitig bereitgestellten Kopie davon.

Operationen

OperationHTTP-MethodeHinweise
ListeGETLiefert {success, data, meta} - paginierte Zeilen plus meta.page/meta.limit/meta.total/meta.sums.
ErstellenPOSTJSON-Body mit Feldwerten. Führt before_insert()/Validierung/Insert/after_insert() in dieser Reihenfolge aus.
AktualisierenPUTJSON-Body mit Feldwerten, adressiert über den Primärschlüssel der Zeile. Führt before_update()/Validierung/Update/after_update() aus.
LöschenDELETEAkzeptiert eine einzelne ID oder eine Mehrfach-?ids=-Liste.
ExportGET?export=csv, ?export=xlsx oder ?export=pdf - streamt die aktuell gefilterte/sortierte Ergebnismenge als Datei-Download, begrenzt auf XcrudConfig::$exportRowLimit Zeilen.
ImportPOST?import=csv mit einem Multipart-Datei-Upload. Jede Zeile durchläuft dieselbe before_insert()/Validierung/Insert/after_insert()-Pipeline wie ein Einzelzeilen-Create, begrenzt auf XcrudConfig::$importRowLimit Zeilen.

Format der Listen-Antwort

{
  "success": true,
  "data": [
    { "customerNumber": 103, "customerName": "Atelier graphique", "..." : "..." }
  ],
  "meta": {
    "page": 1,
    "limit": 10,
    "total": 122,
    "sums": null
  }
}

meta.sums wird statt null befüllt, wenn eine Seite ->sum() aufruft oder ->group_sum_columns() verwendet - siehe Gruppierte Zeilen, Summen & Berichte.

Jeder Schreibzugriff wird serverseitig validiert

Ein Client, der ajax_crud.php direkt aufruft - und damit das eigene JS des Widgets komplett umgeht - kann nicht mehr erreichen als ein normaler Seitenaufruf. Erstellen-/Aktualisieren-Anfragen werden gegen genau dieselben Regeln validiert, die die PHP-Konfiguration für diese Route deklariert: XcrudConfig::$blacklistedTables/$blacklistedColumns regeln, welche Tabellen/Spalten überhaupt existieren, und die eigenen ->validation_required()-/->validation_pattern()-Regeln jedes Feldes werden serverseitig erneut geprüft, niemals aus dem Browser übernommen. Eine gesperrte Spalte wird nie bei Insert/Update akzeptiert, egal was im Request-Body steht, und ein nicht erkannter Spaltenname wird stillschweigend ignoriert statt geschrieben. Das vollständige Modell finden Sie unter Sicherheit: Tabellen & Spalten sperren.