/

Referencia de la API REST

Todo widget de Xcrud habla con un único endpoint, core/ajax_crud.php - aquí está la forma de sus peticiones y respuestas.

El parámetro route

Cada petición lleva un parámetro de consulta route que identifica la configuración de qué página usar - coincide con el valor que la propia llamada ->route() de esa página estableció. La API vuelve a resolver los hooks, columnas y reglas de validación de la página en el servidor a partir de esa ruta en cada petición; nunca confía en una copia de nada de eso proporcionada por el cliente.

Operaciones

OperaciónMétodo HTTPNotas
ListarGETDevuelve {success, data, meta} - filas paginadas más meta.page/meta.limit/meta.total/meta.sums.
CrearPOSTCuerpo JSON con los valores de los campos. Ejecuta before_insert()/validación/inserción/after_insert() en ese orden.
ActualizarPUTCuerpo JSON con los valores de los campos, dirigido por la clave primaria de la fila. Ejecuta before_update()/validación/actualización/after_update().
EliminarDELETEAcepta un único id o una lista masiva ?ids=.
ExportarGET?export=csv, ?export=xlsx, o ?export=pdf - transmite el conjunto de resultados filtrado/ordenado actual como descarga de archivo, limitado a XcrudConfig::$exportRowLimit filas.
ImportarPOST?import=csv con una subida de archivo multipart. Cada fila pasa por el mismo flujo before_insert()/validación/inserción/after_insert() que una creación de una sola fila, limitado a XcrudConfig::$importRowLimit filas.

Forma de la respuesta de listado

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

meta.sums se rellena en lugar de null cuando una página llama a ->sum() o usa ->group_sum_columns() - consulta Filas agrupadas, sumas e informes.

Toda escritura se valida en el servidor

Un cliente que llame a ajax_crud.php directamente - saltándose por completo el propio JS del widget - no puede alcanzar nada a lo que no pudiera llegar una carga de página normal. Las peticiones de creación/actualización se validan contra exactamente las mismas reglas que declara la configuración PHP para esa ruta: XcrudConfig::$blacklistedTables/$blacklistedColumns controlan qué tablas/columnas existen siquiera, y las reglas propias de cada campo ->validation_required()/->validation_pattern() se vuelven a comprobar en el servidor, nunca se confía en ellas desde el navegador. Una columna en la lista negra nunca se acepta en inserción/actualización sin importar lo que haya en el cuerpo de la petición, y un nombre de columna no reconocido se ignora silenciosamente en lugar de escribirse. Consulta Seguridad: listas negras de tablas y columnas para el modelo completo.