1. Go to this page and download the library: Download elan-ev/opencast-api 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/ */
elan-ev / opencast-api example snippets
$config = [
'url' => 'https://develop.opencast.org/', // The API URL of the Opencast instance. (opencast', // The API password. ( // The API connection timeout. In seconds (default 0 to wait indefinitely) (optional)
'version' => null, // The API Version. (Default null). (optional)
'handler' => null, // The callable Handler or HandlerStack. (Default null). (optional)
'features' => null, // A set of additional features [e.g. lucene search]. (Default null). (optional)
'guzzle' => null, // Additional Guzzle Request Options. These options can overwrite some default options (Default null). (optional)
];
$engageConfig = [
'url' => 'https://develop.opencast.org/', // The API URL of the Opencast instance. (opencast', // The API password. ( // The API connection timeout. In seconds (default 0 to wait indefinitely) (optional)
'version' => null, // The API version. (Default null). (optional)
'handler' => null, // The callable Handler or HandlerStack. (Default null). (optional)
'features' => null, // A set of additional features [e.g. lucene search]. (Default null). (optional)
'guzzle' => null, // Additional Guzzle Request Options. These options can overwrite some default options (Default null). (optional)
];
use OpencastApi\Opencast;
// In case of a distributed Opencast setup
$opencastDualApi = new Opencast($config, $engageConfig);
// Or simply
$opencastApi = new Opencast($config);
// Accessing Event Endpoints to get all events
$events = [];
$eventsResponse = $opencastApi->eventsApi->getAll();
if ($eventsResponse['code'] == 200) {
$events = $eventsResponse['body'];
}
// Accessing Series Endpoints to get all series
$series = [];
$seriesResponse = $opencastApi->seriesApi->getAll();
if ($seriesResponse['code'] == 200) {
$series = $seriesResponse['body'];
}
// ...
$config = [
'url' => 'https://develop.opencast.org/', // The API URL of the Opencast instance. (opencast', // The API password. ( // The API connection timeout. In seconds (default 0 to wait indefinitely) (optional)
'version' => null, // The API version. (Default null). (optional)
'handler' => null, // The callable Handler or HandlerStack. (Default null). (optional)
'features' => null, // A set of additional features [e.g. lucene search]. (Default null). (optional)
'guzzle' => null, // Additional Guzzle Request Options. These options can overwrite some default options (Default null). (optional)
];
use OpencastApi\Rest\OcRestClient;
use OpencastApi\Rest\OcEventsApi;
use OpencastApi\Rest\OcSeriesApi;
// Get a client object.
$opencastClient = new OcRestClient($config);
// To get events.
$opencastEventsApi = new OcEventsApi($opencastClient);
$events = [];
$eventsResponse = $opencastEventsApi->getAll();
if ($eventsResponse['code'] == 200) {
$events = $eventsResponse['body'];
}
// To get series.
$opencastSeriesApi = new OcSeriesApi($opencastClient);
$series = [];
$seriesResponse = $opencastSeriesApi->getAll();
if ($seriesResponse['body'] == 200) {
$series = $seriesResponse['body'];
}
// ...
$config = [
'url' => 'https://develop.opencast.org/', // The API URL of the Opencast instance. (opencast', // The API password. ( // The API connection timeout. In seconds (default 0 to wait indefinitely) (optional)
'version' => null, // The API version. (Default null). (optional)
'handler' => null, // The callable Handler or HandlerStack. (Default null). (optional)
'features' => null, // A set of additional features [e.g. lucene search]. (Default null). (optional)
'guzzle' => null, // Additional Guzzle Request Options. These options can overwrite some default options (Default null). (optional)
];
use OpencastApi\Opencast;
$opencastApiWithIngest = new Opencast($config, $engageConfig);
$opencastApiWithoutIngest = new Opencast($config, $engageConfig, false);
// ...
[
'code' => 200, // The status code of the response
'body' => '', // The result of the response. It can be type of string, array or objec ('' || [] || {})
'reason' => 'OK', // The reason/message of response
'location' => '', // The location header of the response when available,
'origin' => [ // The information about the origin of the request (ADDED in v1.4)
'base' => 'https://example.com', // Request base url address
'path' => '/api/path', // Request url path
'method' => 'GET', // Request method
'params' => [ // Request parameters
'query_params' => [],
'form_params' => [],
'form_multipart_params' => [],
'json' => [],
'body' => null,
]
]
]
// for example:
$filters = [
'title' => 'The title name',
'creator' => 'opencast admin'
];
$sorts = [
'title' => 'DESC',
'startDate' => 'ASC'
];
// With Opencast generic class
use OpencastApi\Opencast;
$opencastApi = new Opencast($config);
// Role
$roles = ['ROLE_ADMIN'];
$seriesResponse = $opencastApi->seriesApi->runWithRoles($roles)->getAll(['onlyWithWriteAccess' => true]);
// Or direct class call
$opencastClient = \OpencastApi\Rest\OcRestClient($config);
$ocSeriesApi = \OpencastApi\Rest\OcSeriesApi($opencastClient);
// Role
$roles = ['ROLE_ADMIN'];
$seriesResponse = $ocSeriesApi->runWithRoles($roles)->getAll(['onlyWithWriteAccess' => true]);
// With Opencast generic class
use OpencastApi\Opencast;
$opencastApi = new Opencast($config);
// Role
$user = 'lms-admin';
$seriesResponse = $opencastApi->seriesApi->runAsUser($user)->getAll(['onlyWithWriteAccess' => true]);
// Or direct class call
$opencastClient = \OpencastApi\Rest\OcRestClient($config);
$ocSeriesApi = \OpencastApi\Rest\OcSeriesApi($opencastClient);
// Role
$user = 'lms-admin';
$seriesResponse = $ocSeriesApi->runAsUser($user)->getAll(['onlyWithWriteAccess' => true]);
// With Opencast generic class
use OpencastApi\Opencast;
$opencastApi = new Opencast($config);
$baseResponse = $opencastApi->baseApi->noHeader()->get();
// Or direct class call
$opencastClient = \OpencastApi\Rest\OcRestClient($config);
$ocBaseApi = \OpencastApi\Rest\OcBaseApi($opencastClient);
$baseResponse = $ocBaseApi->noHeader()->get();
// With Opencast generic class
use OpencastApi\Opencast;
$opencastApi = new Opencast($config);
$baseResponse = $opencastApi->baseApi->setRequestTimeout(10)->get();
// Or direct class call
$opencastClient = \OpencastApi\Rest\OcRestClient($config);
$ocBaseApi = \OpencastApi\Rest\OcBaseApi($opencastClient);
$baseResponse = $ocBaseApi->setRequestTimeout(10)->get();
// With Opencast generic class
use OpencastApi\Opencast;
$opencastApi = new Opencast($config);
$baseResponse = $opencastApi->baseApi->setRequestConnectionTimeout(10)->get();
// Or direct class call
$opencastClient = \OpencastApi\Rest\OcRestClient($config);
$ocBaseApi = \OpencastApi\Rest\OcBaseApi($opencastClient);
$baseResponse = $ocBaseApi->setRequestConnectionTimeout(10)->get();
$responsesArray = [
"/api/events" => [ // Request Path
"GET": [ // METHOD
[
"body" => "", //Response body (Default "")
"status": 200, // Status code (Default 200)
"headers": [], // Response headers (Default [])
"version": "", // Protocol version (Default null)
"reason": "", // Reason phrase (when empty a default will be used based on the status code) (Default null)
"params": [] // The optional params to pass to the call (Default [])
]
],
"POST": [ // METHOD
[
"body" => "", //Response body (Default "")
"status": 200, // Status code (Default 200)
"headers": [], // Response headers (Default [])
"version": "", // Protocol version (Default null)
"reason": "", // Reason phrase (when empty a default will be used based on the status code) (Default null)
"params": [] // The optional params to pass to the call (Default [])
],
[...] // Multiple response data object to have multiple calls to the same path and same method. Please see the NOTE below.
],
"PUT": [
[...]
],
"DELETE": [
[...]
]
],
];
$responsesArray = [
"/api/series/{series id}/acl": [
"PUT": [ // PUT METHOD on the same path
[
"body" => "", //Response body (Default "")
"status": 200, // Status code (Default 200)
"params": [ // The optional params to pass to the call (Default [])
"unique_request_identifier": "acl=[]"
],
],
[
"body" => "[{\"allow\":true,\"role\":\"ROLE_ANONYMOUS\",\"action\":\"read\"}]", //Response body (Default "")
"status": 200, // Status code (Default 200)
"params": [ // The optional params to pass to the call (Default [])
"unique_request_identifier": "ROLE_ANONYMOUS"
],
]
]
],
];
$mockResponses = [...]; // As described above.
$mockHandler = \OpencastApi\Mock\OcMockHanlder::getHandlerStackWithPath($mockResponses);
$config = [/*the config*/];
$config['handler'] = $mockHandler;
$opencast = new \OpencastApi\Opencast($config);
$filePath = '{A valid writeable file path}';
$mockResponses = [...]; // As described above.
$mockHandler = \OpencastApi\Mock\OcMockHanlder::getHandlerStackWithPath($mockResponses, $filePath);
$config = [/*the config*/];
$config['handler'] = $mockHandler;
$opencast = new \OpencastApi\Opencast($config);
use OpencastApi\Opencast;
$config = [/*the config*/];
$opencast = new Opencast($config);
// Accessing OcEventsApi would be like: (without Oc and in camelCase format)
$ocEventsApi = $opencast->eventsApi;
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.