This bundle provides an instance of \Transip\Api\Library\TransipAPI
to Symfony's Container.
The TransIP RestAPI bundle for Symfony requires the following in order to work properly:
You can install the RestAPI library using Composer. Run the following command:
composer require transip/transip-api-symfony
Then register your bundle in Symfony
<?php
return [
Symfony\Bundle\FrameworkBundle\FrameworkBundle::class => ['all' => true],
Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle::class => ['all' => true],
Symfony\Bundle\TwigBundle\TwigBundle::class => ['all' => true],
Symfony\Bundle\WebProfilerBundle\WebProfilerBundle::class => ['dev' => true, 'test' => true],
Symfony\Bundle\MonologBundle\MonologBundle::class => ['all' => true],
Symfony\Bundle\DebugBundle\DebugBundle::class => ['dev' => true],
Symfony\Bundle\MakerBundle\MakerBundle::class => ['dev' => true],
Doctrine\Bundle\DoctrineBundle\DoctrineBundle::class => ['all' => true],
Doctrine\Bundle\MigrationsBundle\DoctrineMigrationsBundle::class => ['all' => true],
Symfony\Bundle\SecurityBundle\SecurityBundle::class => ['all' => true],
Twig\Extra\TwigExtraBundle\TwigExtraBundle::class => ['all' => true],
+ Transip\Bundle\RestApi\TransipApiBundle::class => ['all' => true],
];
Lastly create a config file:
# config/packages/transip.yaml
transip_api:
options:
generateWhitelistOnlyTokens: true
authentication:
username: '%env(TRANSIP_USERNAME)%' # The username you use to login onto the Control Panel
privateKey: '%env(TRANSIP_PRIVATE_KEY)%' # Your Private Key create from the Control Panel
<?php
// src/Controller/TransIPApiController.php
namespace App\Controller;
use Symfony\Component\HttpFoundation\Response;
use Transip\Api\Library\TransipAPI;
class TransIPApiController
{
public function getVpses(
TransipAPI $apiClient
): Response {
// Get all VPSes for account #0 (authentication in config)
$apiClient->vps()->getAll();
// Authenticate client with Token (account #1)
$apiClient->setToken('some.jwt.token');
// Get all VPSes for account #1
$apiClient->vps()->getAll();
// Request Token with username and private key (account #2)
$token = $apiClient->auth()->createToken(
$transipUsername,
$transipPrivateKey,
false, // Create IP Whitelisted tokens
false, // Create a read only token
'' // Add Token label
'1 day' // Create token expire
);
// Set token in library
$apiClient->setToken($token);
// Get all VPSes for account #2
$apiClient->vps()->getAll();
}
}
For more information about using the TransIP API Client, please look at its documentation