SDK PHP para la API de Contabo v1, construido desde el OpenAPI oficial de contabo/cntb y envuelto con una capa manual para OAuth2, x-request-id automático y uso opcional en Laravel.
composer require contabo/contabo-sdkuseContabo\Auth\Credentials;
useContabo\ContaboClient;
$client = ContaboClient::fromCredentials(newCredentials(
clientId: getenv('CONTABO_CLIENT_ID'),
clientSecret: getenv('CONTABO_CLIENT_SECRET'),
apiUser: getenv('CONTABO_API_USER'),
apiPassword: getenv('CONTABO_API_PASSWORD'),
));
$instances = $client->instances()->retrieveInstancesList();El wrapper agrega Authorization: Bearer ... y x-request-id automáticamente. Si Contabo responde 401, el SDK solicita un token nuevo y reintenta una vez.
Publica la configuración:
php artisan vendor:publish --tag=contabo-configVariables de entorno:
CONTABO_CLIENT_ID=CONTABO_CLIENT_SECRET=CONTABO_API_USER=CONTABO_API_PASSWORD=CONTABO_TRACE_ID=coderic-contabo-sdkEjemplo:
useContabo\Laravel\Facades\Contabo;
$images = Contabo::images()->listImages();El cliente generado cubre el OpenAPI oficial actual:
- 90 paths
/v1/* - 169 operaciones HTTP
- Compute, Object Storage, Private Networks, Users, Roles, Tags, Secrets, VIP, Domains, DNS, Firewalls y Troubleshooting
La documentación pública de Contabo se encuentra en api.contabo.com. La especificación vendoreada se sincroniza desde:
https://raw.githubusercontent.com/contabo/cntb/master/openapi/api/openapi.yaml
composer install
composer test
composer analyse
composer format:check
composer sync-openapi
composer generate-clientPara verificar si el OpenAPI local difiere del oficial:
bash scripts/diff-openapi.shNo hagas commit de credenciales reales. Las operaciones destructivas de Contabo (cancel, delete, reinstall, shutdown, etc.) afectan recursos y costos reales.
MIT.