Saltar al contenido principal

Instalación

Add InsForge to your Swift Package Manager dependencies:

Enable Logging (Optional)

For debugging, you can configure the SDK log level and destination:
Log Levels:
LevelDescription
.traceMost verbose, includes all internal details
.debugDetailed information for debugging
.infoGeneral operational information (default)
.warningWarnings that don’t prevent operation
.errorErrors that affect functionality
.criticalCritical failures
Log Destinations:
DestinationDescription
.consoleStandard output (print)
.osLogApple’s unified logging system (recommended for iOS/macOS)
.noneDisable logging
.customProvide your own LogHandler factory
Use .info or .error in production to avoid exposing sensitive data in logs.

Definir modelos

Defina sus modelos de datos usando el protocolo Codable de Swift:

insert()

Inserte nuevos registros en una tabla.

Parámetros

  • values - Objeto Codable único o matriz de objetos para insertar

Ejemplos


update()

Actualizar registros existentes en una tabla.

Ejemplos


delete()

Eliminar registros de una tabla.

Ejemplos


select()

Consultar registros de una tabla.

Ejemplos


rpc()

Llamar a funciones PostgreSQL almacenadas (RPC - Remote Procedure Call). Este método le permite invocar directamente funciones SQL definidas en su base de datos.

Parámetros

  • functionName (String) - Nombre de la función PostgreSQL a llamar
  • args ([String: Any]?, optional) - Argumentos para pasar a la función

Ejemplos

Detalles de implementación

  • Sin argumentos: Utiliza la solicitud GET a /api/database/rpc/{functionName}
  • Con argumentos: Utiliza la solicitud POST con cuerpo JSON a /api/database/rpc/{functionName}
  • Use execute() para funciones que devuelven matrices o void
  • Use executeSingle() para funciones que devuelven un solo objeto o valor

Filtros

FiltroDescripciónEjemplo
.eq(column, value:)Igual.eq("status", value: "active")
.neq(column, value:)No igual.neq("status", value: "banned")
.gt(column, value:)Mayor que.gt("age", value: 18)
.gte(column, value:)Mayor o igual.gte("price", value: 100)
.lt(column, value:)Menor que.lt("stock", value: 10)
.lte(column, value:)Menor o igual.lte("priority", value: 3)
.like(column, pattern:)Patrón sensible a mayúsculas.like("name", pattern: "%Widget%")
.ilike(column, pattern:)Patrón insensible a mayúsculas.ilike("email", pattern: "%@gmail.com")
.in(column, values:)Valor en matriz.in("status", values: ["pending", "active"])
.is(column, value:)Exactamente igual (para nil/bool).is("deleted_at", value: nil)

Modificadores

ModificadorDescripciónEjemplo
.order(column, ascending:)Resultados de ordenación.order("createdAt", ascending: false)
.limit(count)Limitar filas.limit(10)
.offset(count)Saltar filas.offset(20)
.range(from:, to:)Paginación de rango.range(from: 0, to: 9)