ometra / proteus-client
Proteus API adapter
Installs: 16
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 0
Open Issues: 0
pkg:composer/ometra/proteus-client
Requires
- php: ^8.0
- equidna/laravel-toolkit: >=1.0.0
- guzzlehttp/guzzle: ^7.0
- illuminate/support: ^10.0 || ^11.0 || ^12.0
- laravel/framework: ^11.0 || ^12.0
- league/flysystem-aws-s3-v3: ^3.0
This package is auto-updated.
Last update: 2025-12-16 14:43:53 UTC
README
Cliente PHP para consumir la API de Proteus dentro de aplicaciones Laravel 10+.
Expone una clase de servicio (Proteus), un Service Provider y una facade
para trabajar con media, metadatos, categorías y transformaciones.
Instalación
- Requerimientos
- PHP: ^8.0
- Laravel: ^11.0 o ^12.0
Instala el paquete vía Composer:
composer require ometra/proteus-client
Laravel detectará automáticamente el ProteusServiceProvider gracias a la
configuración en composer.json.
Publicar configuración
Publica el archivo de configuración para poder definir la URL y el token:
php artisan vendor:publish --tag=proteus-config
Esto generará el archivo config/proteus.php en tu aplicación Laravel.
Configuración
En tu archivo .env agrega:
PROTEUS_URL=https://tu-api-proteus.test PROTEUS_TOKEN=tu-token-aqui
En config/proteus.php puedes definir:
- url: URL base de la API de Proteus.
- token: Token Bearer para autenticar las peticiones.
- transformations: Transformaciones disponibles.
- formats: Formatos de salida soportados.
Uso básico
Puedes usar el cliente vía inyección de dependencias o vía facade.
Mediante Facade
use Ometra\Apollo\Proteus\Facades\Proteus; // Listar media $media = Proteus::mediaIndex([ 'page' => 1, 'per_page' => 20, ]); // Ver detalle de un media $item = Proteus::mediaShow('media-id');
Inyección de dependencias
use Ometra\Apollo\Proteus\Proteus; class MediaController { public function index(Proteus $proteus) { $media = $proteus->mediaIndex(['page' => 1]); return view('media.index', compact('media')); } }
Subir archivos
El método uploadFile permite enviar archivos y metadatos a un endpoint de la API:
use Ometra\Apollo\Proteus\Facades\Proteus; $data = [ 'files' => [$request->file('file')], // UploadedFile[] 'metadata' => [ 'title' => 'Mi archivo', ], 'transformations' => [ 'thumbnail' => ['key' => 'thumb_preset'], ], ]; $response = Proteus::uploadFile('media/store', $data);
Descarga de archivos
Para descargar un media como StreamedResponse:
use Ometra\Apollo\Proteus\Facades\Proteus; return Proteus::mediaDownload('media-id', 'mp4');
También puedes guardar el archivo directamente en el storage configurado en Laravel:
use Ometra\Apollo\Proteus\Facades\Proteus; Proteus::saveMediaLocal('media-id', 'mi-archivo.mp4');
Metadatos y categorías
- Listar categorías:
$categories = Proteus::categoriesIndex();
- Obtener definición de metadatos por clave:
$definition = Proteus::metadataKeys('genre');
- Valores posibles para una clave de metadato:
$values = Proteus::metadataValuesFormKey('genre');
Configuración avanzada
Puedes consultar la configuración de transformaciones y formatos desde el propio cliente:
use Ometra\Apollo\Proteus\Facades\Proteus; $transformations = Proteus::transformationsConfig(); $formats = Proteus::formatsConfig();
Licencia
Este paquete se distribuye bajo la licencia MIT.