1. Go to this page and download the library: Download restruct/edudex-api-client library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
restruct / edudex-api-client example snippets
Restruct\EduDex\Client;
// Initialize with bearer token
$client = new Client('your-jwt-bearer-token');
// Or use environment variable EDUDEX_API_TOKEN
$client = new Client();
// Fetch organizations
$organizations = $client->organizations()->list();
foreach ($organizations as $org) {
echo $org->getLocalizedName('nl') . "\n";
}
use Restruct\EduDex\Client;
// From array
$config = [
'bearer_token' => 'your-token',
'api_base_url' => 'https://api.edudex.nl/data/v1/',
'timeout' => 30,
];
$client = Client::fromConfig($config);
// From environment variable
// Set EDUDEX_API_TOKEN in your .env file
$client = new Client();
use Restruct\EduDex\Client;
$client = new Client();
// List all organizations
$organizations = $client->organizations()->list();
// Get specific organization
$org = $client->organizations()->get('organization-id');
echo "Name: " . $org->getLocalizedName('nl') . "\n";
echo "Roles: " . implode(', ', $org->roles) . "\n";
echo "Supplier: " . ($org->isSupplier() ? 'Yes' : 'No') . "\n";
// Working with catalogs
$catalogs = $client->organizations()->listStaticCatalogs('org-id');
foreach ($catalogs as $catalog) {
echo "{$catalog->title}: {$catalog->countActive}/{$catalog->countTotal} programs\n";
}
// List programs for a supplier
$programs = $client->suppliers()->listPrograms('supplier-id');
// Get specific program
$program = $client->suppliers()->getProgram('supplier-id', 'program-id', 'client-id');
echo "Title: " . $program->getTitle('nl') . "\n";
echo "Description: " . $program->getDescription('en') . "\n";
// Create or update program
$programData = [
'editor' => 'Admin User',
'format' => 'application/vnd.edudex.program+json',
'generator' => 'My CMS v1.0',
'lastEdited' => date('c'),
'programDescriptions' => [
'title' => ['nl' => 'Cursus Titel', 'en' => 'Course Title'],
],
// ... additional program data
];
$client->suppliers()->upsertProgram('supplier-id', 'program-id', 'client-id', $programData);
// Validate program before submission
$result = $client->validations()->validateProgram($programData);
if ($result->isValid()) {
echo "✓ Validation passed!\n";
// Submit the program
$client->suppliers()->upsertProgram(...);
} else {
echo "✗ Validation failed:\n";
foreach ($result->getErrors() as $error) {
echo " • {$error->message}";
if ($error->contextPath) {
echo " (at {$error->contextPath})";
}
echo "\n";
}
}
use Restruct\EduDex\Exceptions\AuthenticationException;
use Restruct\EduDex\Exceptions\ValidationException;
use Restruct\EduDex\Exceptions\ApiException;
use Restruct\EduDex\Exceptions\EduDexException;
try {
$org = $client->organizations()->get('org-id');
} catch (AuthenticationException $e) {
// Handle 401/403 errors
echo "Authentication error: {$e->getMessage()}\n";
} catch (ValidationException $e) {
// Handle validation errors with detailed messages
foreach ($e->getErrors() as $error) {
echo "Error: {$error['message']}\n";
}
} catch (ApiException $e) {
// Handle other API errors
echo "API error: {$e->getMessage()}\n";
} catch (EduDexException $e) {
// Catch-all
echo "Error: {$e->getMessage()}\n";
}
use Restruct\EduDex\Integration\SilverStripe\SilverStripeClient;
// Using singleton
$client = SilverStripeClient::singleton();
// Or via Injector
$client = Injector::inst()->get(SilverStripeClient::class);
// Same API as standalone
$organizations = $client->organizations()->list();
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.