Constructor de Consultas basado en DynamoDB para Laravel

El paquete Laravel DynamoDB es un modelo Eloquent y un constructor de consultas basado en DynamoDB para Laravel, usando el controlador Dynamo proporcionado.

Los modelos extienden el modelo base de Eloquent:

Ejemplo de Uso ‍

use KitarDynamodbModelModel;

class ProductCatalog extends Model
{
    // Requerido
    protected $table = 'ProductCatalog';

    // Nombre de la clave de partición (requerido)
    protected $primaryKey = 'Id';

    // Nombre de la clave de ordenación (opcional)
    protected $sortKey = 'Subject';

    // Valor predeterminado de la clave de ordenación cuando llamamos a find sin una clave de ordenación.
    protected $sortKeyDefault = 'profile';

    protected $fillable = ['Id', 'Price', 'Title'];
}

Ejemplos de Consultas

Aquí tienes algunos ejemplos de consultas y operaciones que puedes realizar con este paquete:

// Obtener todos los modelos
$products = ProductCatalog::scan();
// o
$products = ProductCatalog::all();

// Paginado
$products = ProductCatalog::limit(5)->scan();

// Crear un usuario
$user = User::create([
    'email' => 'foo@bar.com',
    // Clave de ordenación. Si no especificamos esto,
    // se usará sortKeyDefault.
    'type' => 'profile',
]);

// Instanciar un modelo y luego guardarlo.
$user = new User([
    'email' => 'foo@bar.com',
    'type' => 'profile'
]);

$user->save();

// Actualizar un modelo existente
$user->update([
    'name' => 'foobar'
]);

Consultas Avanzadas

Este paquete incluye un uso más avanzado de Dynamo, incluyendo un constructor de consultas que puedes usar sin modelos (y fuera de Laravel también).

Además, el constructor de consultas admite cosas como Expresiones de Condición. Por ejemplo:

DB::table('ProductCatalog')
    ->condition('Id', 'attribute_not_exists')
    ->orCondition('Price', 'attribute_not_exists')
    ->putItem([/*...*/]);

Aquí tienes un ejemplo de expresiones de filtro, que pueden filtrar los resultados con expresiones antes de que los resultados sean devueltos desde la base de datos:

$response = DB::table('Thread')
    ->filter('LastPostedBy', '=', 'User A')
    ->scan();

// oFilter()
$response = DB::table('Thread')
    ->filter('LastPostedBy', '=', 'User A')
    ->orFilter('LastPostedBy', '=', 'User B')
    ->scan();

// filterIn
$response = DB::table('Thread')
    ->filterIn('LastPostedBy', ['User A', 'User B'])
    ->scan();

// filterBetween
$response = DB::table('ProductCatalog')
    ->filterBetween('Price', [0, 100])
    ->scan();

Más Información

El paquete Laravel DynamoDB también incluye instrucciones detalladas sobre cómo usar un modelo DynamoDB para autenticación de usuarios.

Puedes aprender más sobre este paquete, obtener instrucciones completas de instalación y ver el código fuente en GitHub.


Descubre más desde CIBERED

Suscríbete y recibe las últimas entradas en tu correo electrónico.

Deja un comentario