Descripción general
La API de base de datos ofrece operaciones CRUD estilo PostgREST para las tablas de tu base de datos. Todas las solicitudes requieren encabezados de autenticación.
Encabezados
Consultar registros
Recupera registros de una tabla con filtrado, ordenamiento y paginación.
Parámetros de consulta
| Parámetro | Tipo | Descripción |
|---|
limit | integer | Número máximo de registros a devolver (1-1000, valor predeterminado: 100) |
offset | integer | Registros a omitir para la paginación (valor predeterminado: 0) |
order | string | Orden de clasificación (por ejemplo, createdAt.desc, name.asc) |
select | string | Columnas a devolver, separadas por comas |
{field} | string | Filtro de PostgREST (por ejemplo, status=eq.active) |
Operadores de filtro
| Operador | Descripción | Ejemplo |
|---|
eq | Igual a | status=eq.active |
neq | Distinto de | status=neq.deleted |
gt | Mayor que | age=gt.18 |
gte | Mayor o igual que | price=gte.100 |
lt | Menor que | quantity=lt.10 |
lte | Menor o igual que | score=lte.50 |
like | Coincidencia de patrón (sensible a mayúsculas y minúsculas) | name=like.*john* |
ilike | Coincidencia de patrón (no sensible a mayúsculas y minúsculas) | email=ilike.*@gmail.com |
in | Está en la lista | status=in.(active,pending) |
is | Es null/true/false | deleted_at=is.null |
Ejemplo
Respuesta
Encabezados de respuesta
| Encabezado | Descripción |
|---|
X-Total-Count | Total de registros que coinciden con la consulta |
Content-Range | Rango de registros devuelto (por ejemplo, 0-99/1234) |
Crear registros
Crea uno o más registros en una tabla.
Importante: el cuerpo de la solicitud DEBE ser un arreglo, incluso para registros individuales.
Encabezados
| Encabezado | Valor | Descripción |
|---|
Prefer | return=representation | Inclúyelo para devolver los registros creados |
Ejemplo
Respuesta
Sin el encabezado Prefer:
Con Prefer: return=representation:
Actualizar registros
Actualiza los registros que coincidan con los filtros de la consulta.
Parámetros de consulta
Usa los operadores de filtro para especificar qué registros actualizar.
Encabezados
| Encabezado | Valor | Descripción |
|---|
Prefer | return=representation | Inclúyelo para devolver los registros actualizados |
Ejemplo
Respuesta
Eliminar registros
Elimina los registros que coincidan con los filtros de la consulta.
Parámetros de consulta
Usa los operadores de filtro para especificar qué registros eliminar.
Encabezados
| Encabezado | Valor | Descripción |
|---|
Prefer | return=representation | Inclúyelo para devolver los registros eliminados |
Ejemplo
Respuesta
Sin el encabezado Prefer: 204 No Content
Con Prefer: return=representation:
Respuestas de error
Tabla no encontrada (404)
Consulta inválida (400)
Error de validación (400)
Ejemplos
Paginación
Filtros complejos
Upsert (insertar o actualizar)
Inserta un registro o lo actualiza si se produce un conflicto en una restricción única.
Encabezados
| Encabezado | Valor | Descripción |
|---|
Prefer | resolution=merge-duplicates | Actualiza el registro existente en caso de conflicto |
Prefer | resolution=ignore-duplicates | Ignora la inserción si el registro ya existe |
Ejemplo
Respuesta
El upsert requiere una restricción única (por ejemplo, una clave primaria o un índice único) en la tabla. La resolución de conflictos se basa en esa restricción.
Llamar a una función RPC
Ejecuta una función de base de datos mediante PostgREST RPC. Admite todos los métodos HTTP (GET, POST, PUT, PATCH, DELETE).
Ejemplo
Respuesta
Endpoints de administrador
Los siguientes endpoints requieren autenticación de administrador.
Encabezados para endpoints de administrador
Listar funciones de base de datos
Obtiene todas las funciones de base de datos en el esquema public. Requiere autenticación de administrador.
Ejemplo
Respuesta
Listar índices de base de datos
Obtiene todos los índices de la base de datos. Requiere autenticación de administrador.
Ejemplo
Respuesta
Listar políticas RLS
Obtiene todas las políticas de seguridad a nivel de fila (Row Level Security). Requiere autenticación de administrador.
Ejemplo
Respuesta
Listar disparadores (triggers) de base de datos
Obtiene todos los disparadores de la base de datos. Requiere autenticación de administrador.
Ejemplo
Respuesta
Listar migraciones de base de datos
Obtiene el historial de migraciones personalizadas ejecutadas con éxito. InsForge las almacena en system.custom_migrations, pero el endpoint devuelve únicamente los metadatos de la migración y las sentencias ejecutadas. Requiere autenticación de administrador.
Ejemplo
Respuesta
Crear una migración de base de datos
Crea y ejecuta de inmediato una migración personalizada en la base de datos. La migración solo se registra si todas las sentencias se ejecutan correctamente. Requiere autenticación de administrador.
Cuerpo de la solicitud
| Campo | Tipo | Obligatorio | Descripción |
|---|
version | string | Sí | Versión numérica de la migración (hasta 64 dígitos). Admite prefijos secuenciales estilo Drizzle (por ejemplo, 0001) o una marca de tiempo YYYYMMDDHHmmss. Las versiones se comparan numéricamente. La CLI de InsForge genera marcas de tiempo UTC de 14 dígitos para los nombres de archivo de migración locales. |
name | string | Sí | Nombre de la migración usando solo letras minúsculas, números y guiones |
sql | string | Sí | Texto SQL a analizar y ejecutar |
Ejemplo
Respuesta
No incluyas BEGIN, COMMIT ni ROLLBACK dentro de una migración personalizada. InsForge ejecuta la migración dentro de su propia transacción.
Ejecutar SQL sin procesar (modo estricto)
Ejecuta una consulta SQL sin procesar con saneamiento estricto. Bloquea el acceso a las tablas del sistema y a auth.users. Requiere autenticación de administrador.
Cuerpo de la solicitud
| Campo | Tipo | Obligatorio | Descripción |
|---|
query | string | Sí | Consulta SQL a ejecutar |
params | array | No | Parámetros de consulta para consultas parametrizadas |
Ejemplo
Respuesta
Ejecutar SQL sin procesar (modo relajado)
Ejecuta una consulta SQL sin procesar con saneamiento relajado. Permite SELECT e INSERT en tablas del sistema. Úsalo con precaución. Requiere autenticación de administrador.
Cuerpo de la solicitud
| Campo | Tipo | Obligatorio | Descripción |
|---|
query | string | Sí | Consulta SQL a ejecutar |
params | array | No | Parámetros de consulta para consultas parametrizadas |
Ejemplo
Respuesta
Este endpoint tiene restricciones relajadas y puede acceder a tablas del sistema. Úsalo solo cuando sea necesario y asegúrate de contar con la autorización adecuada.
Exportar base de datos
Exporta el esquema y/o los datos de la base de datos en formato SQL o JSON. Requiere autenticación de administrador.
Cuerpo de la solicitud
| Campo | Tipo | Obligatorio | Predeterminado | Descripción |
|---|
tables | array | No | all | Lista de tablas a exportar |
format | string | No | sql | Formato de exportación (sql o json) |
includeData | boolean | No | true | Incluir los datos de las tablas |
includeFunctions | boolean | No | false | Incluir funciones de la base de datos |
includeSequences | boolean | No | false | Incluir secuencias |
includeViews | boolean | No | false | Incluir vistas |
rowLimit | integer | No | - | Número máximo de filas por tabla |
Ejemplo
Respuesta
Importar base de datos
Importa la base de datos desde un archivo SQL. Requiere autenticación de administrador.
| Campo | Tipo | Obligatorio | Predeterminado | Descripción |
|---|
file | file | Sí | - | Archivo SQL a importar |
truncate | boolean | No | false | Truncar las tablas existentes antes de importar |
Ejemplo
Respuesta
Inserción o actualización masiva (Bulk Upsert)
Inserta o actualiza datos de forma masiva a partir de un archivo CSV o JSON. Requiere autenticación de administrador.
| Campo | Tipo | Obligatorio | Descripción |
|---|
file | file | Sí | Archivo CSV o JSON que contiene los datos |
table | string | Sí | Nombre de la tabla de destino |
upsertKey | string | No | Nombre de la columna para la resolución de conflictos en el upsert |
Ejemplo
Respuesta